我想发一个带有改装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);
url如下所示
www.website.com/server/directory/location。type?arg1=value1&arg2=value2
我被要求使用POST请求。值(value1和value2)在运行时是动态的。我使用HttpClient用Xamarin开始了这个项目,现在我正在用Java原生语言重写它。在C#中,我所要做的就是对字符串进行精简,并在一个POST中发送结果字符串。
我尝试使用@path,错误是:
“server/directory/location.type”不包含“{arg1}”。(参数#1)
然后,我尝试使用@query,错误是:
IllegalArgumentException:表单编码的方法必须至少包含一个@字段。
最后,我尝试了@field,但请求从未得到任何响应(我将连接超时设置为5秒)
请帮助我,或者告诉我,如果我不得不别无选择,只能使用GET请求。
((编辑))下面是我的客户端设置html" target="_blank">代码:
private static void setupClient(){
final OkHttpClient client = new okhttp3.OkHttpClient.Builder()
.connectTimeout(CONNECTION_TIMEOUT, TimeUnit.SECONDS)
.readTimeout(READ_TIMEOUT, TimeUnit.SECONDS)
.writeTimeout(WRITE_TIMEOUT, TimeUnit.SECONDS)
.retryOnConnectionFailure(false)
.build();
//define retrofit
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(iXUtils.getUrl_())
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
this.client_ = retrofit.create(RequestInterface.class);
}
get()方法:
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";
}
我把test=0放入一个断点,但它从来没有达到那个点。另外,为了避免Android.os.NetworkonMaintHreadException,我在doInbackground中将该方法称为“CallFunctionDB”。
如果请求表单编码,则修改要求至少有一个表单参数。您已经回答了自己的问题--您使用的是查询参数而不是POST字段,这样就不需要注释了。删除@formurlencoded
批注,并将参数更改为@query
批注。
我有下面的代码(谷歌的凌空库)向我的php服务器发送POST请求并获取信息。我没有在php中检查isset($\u POST['id')就尝试了代码,代码运行良好。当我开始检查时,php将跳过if语句并转到else,这意味着代码没有正确发送参数。我怎样才能解决这个问题? 我还尝试了以下代码: 但是我仍然得到同样的结果。
我正在测试一种使用改装库发送图像的方法。在此处的改装文件中:http://square.github.io/retrofit/有一种方法可以使用@MultiPart注释。我正在尝试像文档一样使用,但对我来说仍然不起作用。 我该怎么做? 我在努力。 Web服务php文件 Usario的侦听器 活动 例外 电子/错误:(5200):com。谷歌。格森。JsonSyntaxException:com。谷
问题内容: 根据带有凭据的请求,Firefox仅在以下情况下发送凭据以及跨域帖子: 设置了…但是看来jQuery的Ajax API似乎没有为此提供任何机制。 有什么我想念的吗?我还有其他方法可以做到吗? 问题答案: 功能应该在jQuery 1.5中被破坏。 从jQuery 1.5.1开始,您应该使用xhrFields参数。 文件:http://api.jquery.com/jQuery.ajax/
我有一个api URL:https://orderingspace.com/api/search Body parameter:lat:48.8834553 log:2.3399433 miles:6
单击from-data或x-www-form-urlencoded 然后在键/值字段上传递两个参数。 ANDROID改装设置 原因是我使用了2个API(webapi和wcf)。我的所有其他响应都是对象数组。[{},{}]但在此呼叫中,我收到了以下信息 但我还是无法解析响应。
我试图使用Android Volley库发送JSON Post请求,但我似乎没有得到json的正文,我在我的Web服务器上得到未定义的正文参数。我需要json的参数体是一个单一的对象"name=某些Val } 我也在上面的代码中尝试了这一点,但没有成功: