HTTP500内部服务器错误
生活随笔
收集整理的這篇文章主要介紹了
HTTP500内部服务器错误
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 1.問題描述
- 2.問題解決
- 3.HTTP請求代碼
1.問題描述
1.使用http方式請求對方服務器,返回JSON格式數據
2.由于是測試環境,網段不是同一個,對方服務器網段做了代理,我們能ping通,也能telnet
3.使用瀏覽器訪問能正常返回JSON格式數據
4.用代碼解析http請求一直報500錯誤,對方覺得是我們代碼問題,但是我們用代碼解析公網上的一些請求是正常的;而且我們將代碼發給對方,讓對方解析,也是正常的
2.問題解決
由于我們本地看不出什么問題,我們用代碼請求,讓對方服務器進行抓包調試。
1.對方服務器讓我們將請求的Content-Type改為application/json,請求仍然有問題
Error-Reason:CHARACTER:error="json"; error_description*=UTF-8''Expected one of: <<{,[>> but got: <<C>>
2.對方查了下,發現服務器Content-Type填什么都報錯,application/x-www-form-urlencoded、application/json都報錯,只有不填才能正確,空串也不行;我們就說http請求頭有個默認值就是x-www-form-urlencoded,對方服務器端改了這個Content-Type的請求頭,我們代碼就能正常訪問到JSON數據了
3.HTTP請求代碼
public static String sendGet(String url, String param) { String result = "";BufferedReader in = null;try {String urlName = url + "?" + param;URL realUrl = new URL(urlName);// 打開和URL之間的連接URLConnection conn = realUrl.openConnection();// 設置通用的請求屬性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");// 建立實際的連接conn.connect();// 獲取所有響應頭字段Map<String, List<String>> map = conn.getHeaderFields();// 遍歷所有的響應頭字段for (String key : map.keySet()) {System.out.println(key + "--->" + map.get(key));}// 定義BufferedReader輸入流來讀取URL的響應in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("發送GET請求出現異常!" + e);e.printStackTrace();}// 使用finally塊來關閉輸入流finally {try {if (in != null) {in.close();}} catch (IOException ex) {ex.printStackTrace();}}return result;}總結
以上是生活随笔為你收集整理的HTTP500内部服务器错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (二十三)美萍酒店管理系统:系统维护_系
- 下一篇: 天籁之音