我是Android开发的新手,我不知道如何做到这一点,我已经在互联网上搜索过了,但到目前为止我所做的一切并不是没有工作。我尝试做的是将字符串发送到服务器,密钥必须是" interval ="。这是我到目前为止所做的,但它不起作用。我从spinner得到了字符串time2,但是现在它并不重要,因为我知道spinner部分有效,而POST没有。
PostInterface service = retrofit.create(PostInterface.class);
service.postTime(time2);
和界面
@FormUrlEncoded
@POST
Call<Response> postTime(@Field("interval=") String time);
我应该做什么网以及如何使用http://requestb.in/进行测试(之前从未使用过,我刚看到它可以用于POST测试)?
答案 0 :(得分:1)
为什么你首先使用改装? 这是一个很好的图书馆,但如果您是Android的新手,我建议先从HttpClient开始。
在您的示例中,未调用execute方法。
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://requestb.in/")
.addConverterFactory(GsonConverterFactory.create())
.build();
PostInterface service = retrofit.create(PostInterface.class);
Call<Response> call = service.postTime(time2);
call.execute()
在你的界面中(用requestbin给出的令牌替换xxx)
@FormUrlEncoded
@POST("xxxxxxx")
Call<Response> postTime(@Field("interval=") String time);
ps:请注意,不应在主线程上启动任何http调用。
答案 1 :(得分:0)
如果您要发布表单字段,则应从“interval =”中删除“=” 字段是键和值,不需要“=” 如果您想要一个测试客户端用于帖子,那么您可以尝试postman
如果这不是您所期望的答案,请更多地澄清您的问题
@Mickael Monsang答案 不要'直接使用call.execute更好地使用
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<Response> call, Response<Response> response) {}}
@Override
public void onFailure(Call<String> call, Throwable t) {
}
}
});