我正在尝试使用okHttpClient 4.2.1库注册用户,作为响应,我得到了一些垃圾值
Respone is �������������V*.MNN-.V�JK�)N�Q�r�S���rR�SSR��K2��t�RK���ck�NY�<������
我使用邮递员,得到的答复是我所期望的。我不明白为什么它不能在Android Studio中工作。
{"result": {"OTP": 1113401845,"id": 143},"success": true,"message": "User Registered In Successfully"}
这是我使用的代码
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
JSONObject postdata = new JSONObject();
try {
postdata.put("action", "registrationFirst");
postdata.put("User_name", "abcd");
postdata.put("password", "12345");
postdata.put("email", "aaaa3@a.com");
postdata.put("street", "qa");
postdata.put("Gender", "1");
postdata.put("Religion", "3");
postdata.put("caste", "Other");
postdata.put("Country", "UAE");
postdata.put("mobile", "0123456");
postdata.put("Locaion", "SHJ");
} catch(JSONException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
RequestBody body = RequestBody.create(mediaType,postdata.toString());
Request request = new Request.Builder()
.url(myUrl)
.post(body)
.addHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Basic aW5mb0Bhbm9vbnouY29tOjEyMTIxMg==")
.addHeader("User-Agent", "PostmanRuntime/7.20.1")
.addHeader("Accept", "application/json")
.addHeader("Cache-Control", "no-cache")
.addHeader("Postman-Token", "cf631a82-2570-4c20-9c39-be0563240c67,f9cecf3d-2340-4fce-bb6f-c060c9f8894f")
.addHeader("Accept-Encoding", "gzip, deflate")
.addHeader("Content-Length", "1278")
.addHeader("Connection", "keep-alive")
.addHeader("cache-control", "no-cache")
.build();
Response response = null;
try {
response = client.newCall(request).execute();
if (response.isSuccessful()) {
String result = response.body().string();
Log.d("Hola","Response is "+result);
}
} catch (Exception e) {
e.printStackTrace();
Log.d("Hola","Failed exception "+e);
}
答案 0 :(得分:1)
使用Request.Builder
建立请求时,应删除以下行:
addHeader("Accept-Encoding", "gzip, deflate")
当您指定自己的Accept-Encoding
值时,意味着您要进行自己的解压缩,而这对您而言并非如此。
答案 1 :(得分:0)
Android Studio可能不解压缩响应并将其显示给您压缩的情况。 您可能需要删除标题“ Accept-Encoding”,“ gzip,deflate”,以使其正常工作。