我不是 CS 专家,也不是 Java 专家,所以如果以下问题的答案很明显,请见谅:
我已经构建了一个类来处理向 HTTP 服务器发送查询、获取响应并将响应返回给调用者。
我的问题是这个;如果我调用该函数一次,并且响应需要很长时间,并且在延迟期间,我再次调用它,延迟的第一个调用会干扰第二个调用的执行吗?
应大众需求...这里有一些源代码:
package com.cambrothers.wms.module;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
public class ServerComm {
public HashMap<String, String> sendData(String endpoint, String requestParameters){
HashMap<String, String> response_data = new HashMap<String, String>();
System.out.println("GetRequest");
if (endpoint.startsWith("http://"))
{
// Send a GET request to the servlet
try
{
// Send data
String urlStr = endpoint;
if (requestParameters != null && requestParameters.length () > 0)
{
urlStr += "?" + requestParameters;
}
URL url = new URL(urlStr);
URLConnection conn = url.openConnection ();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = rd.readLine()) != null)
{
sb.append(line);
}
rd.close();
String result = sb.toString();
String[] values = result.split("&");
String[] kp = null;
for(int i =0; i < values.length ; i++){
kp = values[i].split("=");
response_data.put(kp[0], kp[1]);
}
} catch (Exception e)
{
e.printStackTrace();
}
}
return response_data;
}
}
小心