Java HTTPOK3返回两个响应
我正在连接黑盒后端,我无法控制源代码,无法使用Ok Http 3修改后端。但出于某种原因,我得到了两个结果,我不知道发生了什么。我怀疑有两个线程正在变为活动状态。但我不知道如何阻止它。我尝试了同步和异步连接,但都没有效果。我是Ok Http 3的新手,所以我不确定我做错了什么Java HTTPOK3返回两个响应,java,android,okhttp,Java,Android,Okhttp,我正在连接黑盒后端,我无法控制源代码,无法使用Ok Http 3修改后端。但出于某种原因,我得到了两个结果,我不知道发生了什么。我怀疑有两个线程正在变为活动状态。但我不知道如何阻止它。我尝试了同步和异步连接,但都没有效果。我是Ok Http 3的新手,所以我不确定我做错了什么 I/Results: {"TotalResultsCount":3,"Results":[{ I/Results: {"TotalResultsCount":24,"Results":[ 这是我的同步代码 class
I/Results: {"TotalResultsCount":3,"Results":[{
I/Results: {"TotalResultsCount":24,"Results":[
这是我的同步代码
class CallBackendSync extends AsyncTask {
OkHttpClient client = new OkHttpClient();
JSONObject resultsObject = null;
@Override
protected Object doInBackground(Object [] objects) {
String searchTerm = (String) objects[0];
String url = (String) objects[1];
String token = (String) objects[2];
String results = "";
//Search Body
RequestBody searchBody = new FormBody.Builder()
.add("QueryText", searchTerm)
.add("Categories", "")
.add("ChargeOutPerMinuteFrom", "0")
.add("ChargeOutPerMinuteTo", "0")
.add("maxDistance", "0")
.add("longitude", "0")
.add("latitude", "0")
.add("page", "0")
.build();
//Create request
Request.Builder builder = new Request.Builder();
builder.url(url);
builder.addHeader("Accept", "application/json");
if (token != null) {
builder.addHeader("Authorization", token);
}
builder.post(searchBody);
Request request = builder.build();
try {
Response response = client.newCall(request).execute();
results = results + response.body().string();
resultsObject = new JSONObject(results);
Log.i("Results", results);
return resultsObject;
}catch (Exception e){
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String s){
super.onPostExecute(s);
displayResults(resultsObject);
}
}
我使用下面的代码片段从MainActivity调用后端
CallBackendSync sync = new CallBackendSync();
String [] params = {searchTerm, serverBaseUrl + url, accessToken};
sync.execute(params);
任何关于发生了什么问题的想法都将非常感激 你试过用邮递员来检查邮递员给你的结果是否正确吗?嗨@AndreiToader谢谢你的提示。我不知道邮递员是什么,但我会查一下试试。谢谢