【发布时间】:2015-08-31 22:17:22
【问题描述】:
我正在尝试向我创建的 REST API 发送 POST 请求。为此,我正在使用改造。
现在,当我在终端中使用 CURL 命令发送请求时,请求被接受并存储了值。下面是代码:
curl -i -H "Accept: application/json" -H "Content-type: application/json" -H "X-User-Email: abcd@gmail.com" -H "X-User-Token: qQsQobQv-Wmum7bUs4b_" -X POST -d '{"store": {"code":"0010" } }' http://localhost:3000/api/store.json
以上工作完全正常。
现在,当我尝试在我的 Android 应用程序中使用 Retrofit 发送请求时,它在我的 API 中显示未授权错误。并且没有任何内容被存储。
final String endpoint = "http://localhost:3000/api/store.json"
RequestInterceptor requestInterceptor = new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader("Content-Type", "application/json");
request.addHeader("Accept", "application/json");
request.addHeader("X-User-Email", email);
request.addHeader("X-User-Token", auth_token);
}
};
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(endpoint)
.setRequestInterceptor(requestInterceptor)
.build();
Service service = restAdapter.create(Service.class);
service.store(fault, new Callback<StoreResponse>() {
@Override
public void success(StoreResponse storeResponse, Response response) {
Log.d(LOG_TAG, "Success");
}
@Override
public void failure(RetrofitError error) {
Log.d(LOG_TAG, "Failure" + error.getMessage());
}
});
这不起作用。我不知道该怎么办。卡在这里一段时间了。 请帮忙!!!
这是服务类:
public interface Service {
@POST("/")
public void store(@Body StoreResponse fault, Callback<StoreResponse> responseCallback);
}
编辑
现在工作正常。实际上我的电子邮件没有被存储,所以变量为空。修复了这个问题,现在一切正常。
【问题讨论】:
-
请发布您的服务课程
-
我已经编辑了我的问题。请看一下
标签: android curl http-post retrofit