簡體   English   中英

Java-發送HTTP請求時REST客戶端出現問題

[英]Java - problems with REST client while sending an HTTP request

我正在嘗試使用Java將GET請求發送到REST服務器。 這是經過一些調試的代碼。

  URL url = new URL(request); 

  System.out.println("request url: " + url.toString());
  System.out.println("method: " + httpMethod);

  HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
  connection.setDoOutput(true); 
  connection.setInstanceFollowRedirects(false); 
  connection.setRequestMethod(httpMethod); 
  connection.setRequestProperty("Content-Type", "text/plain"); 
  connection.setRequestProperty("charset", "utf-8"); 

  OutputStream os = connection.getOutputStream(); 
  os.flush();
  String response = os.toString(); 

  System.out.println("response: " + response);      

  if (response.length() == 0)
  {
      throw new MyException("the response is empty");
  }

這是輸出:

request url: http://www.example.com/api.php/getToken/?api_ver=1&token=&api_key=bf8de053d9b6c540fb12195b4ac1602b0a71788c&sig=e00a59747afc7232207d40087e3765a5
method: GET
response: 
com.example.api.client.MyException: the response is empty

如您所見,響應為空。

但是,如果我嘗試將URL復制並粘貼到Firefox中,則會得到此輸出

{"error":220}

和這個標題:

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 11:55:29 GMT
Server: Apache
Cache-Control: max-age=0
Expires: Mon, 15 Nov 2010 11:55:29 GMT
Vary: Accept-Encoding,User-Agent
Content-Encoding: gzip
Content-Length: 33
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8

您能看到問題在哪里嗎? 如何進一步調試此代碼? 任何幫助將非常感謝。

我認為您沒有正確使用HttpURLConnection(沒有connect())。

也許研究這個例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM