解决:java.io.IOException: Server returned HTTP response code: 500

都说利用java实现跨域访问很简单,原来是利用java的net包可以实现连接url,post、get传值什么的。

当然,你也可以用httpClient这种第三方的方法。

 

今天遇到的问题是,在post时出现异常:

java.io.IOException: Server returned HTTP response code: 500 for URL: http://192.98.8.50/。。。

在网上查了一下,也是很多情况,

我遇到的情况是:

我在没有post参数的情况下也打开了OutputStreamWriter造成的。

修改后的完整程序如下:

private StringBuffer urlConnectionPost(String tourl,StringBuffer data) { StringBuffer sb = null; BufferedReader reader = null; OutputStreamWriter wr = null; URL url; try { url = new URL(tourl); URLConnection conn = url.openConnection(); conn.setDoOutput(true); conn.setConnectTimeout(1000 * 5); //当存在post的值时,才打开OutputStreamWriter if(data!=null && data.toString().trim().length()>0){ wr = new OutputStreamWriter(conn.getOutputStream(),"UTF-8"); wr.write(data.toString()); wr.flush(); } // Get the response reader = new BufferedReader(new InputStreamReader(conn .getInputStream(),"UTF-8")); sb = new StringBuffer(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "/n"); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { if(wr!=null){ wr.close(); } if(reader!=null){ reader.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return sb; }

你可能感兴趣的:(java)