[英]Setting Json content-type for Rest client
我正在使用loopj的AsyncHttpClient for Android,以便我可以與我創建的一個安靜的Web應用程序進行交互。 我使用Postman測試了一個POST請求,它工作正常。
但是,在Android中,我很難做一個帖子請求,但內容類型總是設置為text / html ..
RequestParams params = new RequestParams();
params.setUseJsonStreamer(true);
params.put("email", "android@tester.com");
StringEntity se = null;
try {
se = new StringEntity(params.toString());
se.setContentType("application/json");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Header headers[] = {};
if(getActivity() != null){
RestClient.postWithContentType(getActivity(), "contacts", se, "application/json", new AsyncHttpResponseHandler() {
//onSuccess and onFailure methods ommitted
});
它一直在失敗,我在logcat中收到此消息:由於HttpEntity設置了內容類型,因此將忽略Passed contentType。
所以,我試圖改變這個,
public static void postWithContentType(Context context,String url,StringEntity s,String contentType, AsyncHttpResponseHandler responseHandler){
s.setContentType("application/json");
client.post(context, getAbsoluteUrl(url), s, contentType, responseHandler);
}
然而,我仍然得到相同的信息,這真的令人沮喪,而且我一直試圖弄清楚多年! 如果有人知道如何設置內容類型 - 將非常感謝,謝謝!
我有同樣的問題。
我無法理解哪個會影響它,因為它幾天前確實有效。 我只是手動添加標題,它的工作原理。
只需添加RestClient.addHeader("Content-Type", "application/json");
在您的RestClient.postWithContentType(...)
代碼之上。
RequestParams requestParams = new RequestParams();
asyncHttpClient.addHeader("Accept", "text/json");
asyncHttpClient.addHeader("content-type", "application/json");
asyncHttpClient.post(context, getAbsoluteUrl(url), requestParams, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, String content) {
super.onSuccess(content
// Ur logic
}
@Override
public void onFailure(Throwable error, String content) {
super.onFailure(error, content);
// Ur logic
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.