Android 互联网上的 HttpUrlConnection EOFException
Android HttpUrlConnection EOFException on internet
我正在创建一个 android 应用程序,它使用 connectify 连接到我的电脑并执行 http get 请求并且工作正常但是当我尝试使用我的本地服务器副本在互联网上时 api 不起作用帮助我提前谢谢这是我的代码
public static String makeRequest(RequestPackage p) throws Exception {
BufferedReader reader = null;
int status =0;
String uri = p.getUri();
if(p.getMethod().equals("GET")){
uri += "?" + p.getEncondedParams();
}
URL url = new URL(uri);
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setRequestMethod(p.getMethod());
if (p.getMethod().equals("POST")){
con.setDoOutput(true);
con.setChunkedStreamingMode(0);
OutputStreamWriter writer = new OutputStreamWriter(con.getOutputStream());
writer.write(p.getEncondedParams());
writer.flush();
status = con.getResponseCode();
}
StringBuilder sb = new StringBuilder();
con.setConnectTimeout(30000);
con.setReadTimeout(30000);
reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String line;
while((line = reader.readLine()) != null){
sb.append(line+"\n");
}
con.disconnect();
return sb.toString();
}
我想你可以检查响应代码。如果不是 200 (OK),getInputStream 可能 returns null,然后使用 getErrorStream。希望这对我有所帮助,因为我昨天遇到了同样的问题。
urlConnection.connect();
int responseCode = urlConnection.getResponseCode();
if (responseCode == HttpStatus.SC_OK) {
inputStream = urlConnection.getInputStream();
} else {
inputStream = urlConnection.getErrorStream();
}
我正在创建一个 android 应用程序,它使用 connectify 连接到我的电脑并执行 http get 请求并且工作正常但是当我尝试使用我的本地服务器副本在互联网上时 api 不起作用帮助我提前谢谢这是我的代码
public static String makeRequest(RequestPackage p) throws Exception {
BufferedReader reader = null;
int status =0;
String uri = p.getUri();
if(p.getMethod().equals("GET")){
uri += "?" + p.getEncondedParams();
}
URL url = new URL(uri);
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setRequestMethod(p.getMethod());
if (p.getMethod().equals("POST")){
con.setDoOutput(true);
con.setChunkedStreamingMode(0);
OutputStreamWriter writer = new OutputStreamWriter(con.getOutputStream());
writer.write(p.getEncondedParams());
writer.flush();
status = con.getResponseCode();
}
StringBuilder sb = new StringBuilder();
con.setConnectTimeout(30000);
con.setReadTimeout(30000);
reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String line;
while((line = reader.readLine()) != null){
sb.append(line+"\n");
}
con.disconnect();
return sb.toString();
}
我想你可以检查响应代码。如果不是 200 (OK),getInputStream 可能 returns null,然后使用 getErrorStream。希望这对我有所帮助,因为我昨天遇到了同样的问题。
urlConnection.connect();
int responseCode = urlConnection.getResponseCode();
if (responseCode == HttpStatus.SC_OK) {
inputStream = urlConnection.getInputStream();
} else {
inputStream = urlConnection.getErrorStream();
}