Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 改造编码特殊字符大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在使用gson而不是android进行改造,因为它更快,更安全.

问题是改造是编码特殊字符,如=和?,我正在使用的网址无法解码这些字符.

这是我的代码

api类:

public interface placeApi {

@GET("/{iD}")
public void getFeed(@Path("id") TypedString id,CallBACk

主要课程:

String url = "@R_197_10107@://api.beirut.com/BeirutProfile.PHP?"; 
String next = "profilEID=111";


 //CreaTing adapter for retrofit with base url
    RestAdapter restAdapter = new RestAdapter.builder().setEndpoint(url).setrequesTinterceptor(requesTinterceptor).build();

    //CreaTing service for the adapter
    placeApi placeApi = restAdapter.create(placeApi.class);

    placeApi.getFeed(id,new CallBACkstem.out.println();
            System.out.println(response.getUrl());
            name.setText("Name: " + place.getName());
        }

        @Override
        public void failure(RetrofitError error) {
            System.out.println(error.getmessage());
        }
    });

我尝试使用这个gson方法解决问题,但它没有用,很可能是因为它只包含url的第一部分而不是我发送到placeApi接口的那部分:

Gson gson = new GsonBuilder().disableHtmlEscaping().create();

并在创建restadapter时添加了这个:

RestAdapter restAdapter = new RestAdapter.builder().setEndpoint(url).setrequesTinterceptor(requesTinterceptor).setConverter(new GsonConverter(gson)).setConverter(new GsonConverter(gson)).build();

有什么帮助吗?

最佳答案
您必须使用Use @EncodedPath.像这样:

public interface placeApi {
@GET("/{iD}")
public void getFeed(@EncodedPath("id") TypedString id,CallBACk

注意:以上工作但现在我正在查看文档,似乎@EncodedPath已被弃用,因此请使用@PATH及其参数:

public interface placeApi {
@GET("/{iD}")
public void getFeed(@Path("id",encode=falsE) TypedString id,CallBACk

ref:https://square.github.io/retrofit/2.x/retrofit/

大佬总结

以上是大佬教程为你收集整理的android – 改造编码特殊字符全部内容,希望文章能够帮你解决android – 改造编码特殊字符所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。