Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用改型2发送带有url参数的帖子_Java_Android_Retrofit2 - Fatal编程技术网

Java 使用改型2发送带有url参数的帖子

Java 使用改型2发送带有url参数的帖子,java,android,retrofit2,Java,Android,Retrofit2,我想发一封改装2的邮件。url有一些参数: @Headers({ "Accept: application/x-www-form-urlencoded;", "User-Agent: my-app" }) @FormUrlEncoded @POST("server/directory/location.type") `public Call<POJOStringValue> dataWithUr(@Path("arg1") String arg1, @

我想发一封改装2的邮件。url有一些参数:

 @Headers({
      "Accept: application/x-www-form-urlencoded;",
      "User-Agent: my-app"
 })
 @FormUrlEncoded
 @POST("server/directory/location.type")
`public Call<POJOStringValue> dataWithUr(@Path("arg1") String arg1, @Path("arg2"), String arg2);         
get()方法:

我这样称呼它:

 public String callFunctionDB(String arg1,  String arg2){
    setupClient();

    Call<POJOStringValue> call  = get().dataWithUrlString(arg1, arg2);
    try {
        POJOStringValue response = call.execute().body();
        String value = response.getValue();
        int test = 0;
    } catch (IOException e) {
        String value = "it failded";
        e.printStackTrace();
    }
    return "test";
} 
public String callFunctionDB(字符串arg1、字符串arg2){
setupClient();
Call Call=get().dataWithUrlString(arg1,arg2);
试一试{
POJOStringValue response=call.execute().body();
字符串值=response.getValue();
int检验=0;
}捕获(IOE异常){
String value=“它失败了”;
e、 printStackTrace();
}
返回“测试”;
} 

我把测试值设为0,这样就可以设置一个断点,它永远不会达到。另外,我在doInbackground中调用了方法“callFunctionDB”,以避免android.os.NetworkOnMainThreadException。

如果请求表单编码,改型要求您至少有一个表单参数。您已经回答了自己的问题——您使用的是查询参数而不是POST字段,因此不需要进行注释。删除
@FormUrlEncoded
注释,并将参数更改为
@Query
注释。

共享调用web服务的代码
@FormUrlEncoded
为什么?你是对的,这是问题之一
public static RequestInterface get(){
    return this.client_;
}
 public String callFunctionDB(String arg1,  String arg2){
    setupClient();

    Call<POJOStringValue> call  = get().dataWithUrlString(arg1, arg2);
    try {
        POJOStringValue response = call.execute().body();
        String value = response.getValue();
        int test = 0;
    } catch (IOException e) {
        String value = "it failded";
        e.printStackTrace();
    }
    return "test";
}