簡體   English   中英

如何使用純Java套接字使用純HTTP / 1.1與nginx通訊?

[英]How can I talk to nginx using plain HTTP/1.1 with pure Java sockets?

我通過套接字連接Nginx http服務,我使用Java語言:

url:api.weibo.com/2/users/show.json

GET /2/users/show.json HTTP/1.1
Host: api.weibo.com
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
Cookie: PHPSESSID=uc67dtcb5r3orchgv0dgdd0f57; think_template=default

但返回:

HTTP/1.1 400 Bad Request
Server: Weibo
Date: Sat, 24 Jan 2015 10:07:33 GMT
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Api-Server-IP: 10.75.0.174
Vary: Accept-Encoding

60
{"error":"source paramter(appkey) is missing","error_code":10006,"request":"/2/users/show.json"}
0

我不知道什么是60和0

如果我使用HTTP / 1.0代表HTTP / 1.1,則返回:

HTTP/1.1 400 Bad Request
Server: Weibo
Date: Sat, 24 Jan 2015 10:22:09 GMT
Content-Type: application/json;charset=UTF-8
Connection: close
Api-Server-IP: 10.75.5.92
Vary: Accept-Encoding

{"error":"source paramter(appkey) is missing","error_code":10006,"request":"/2/users/show.json"}

如果我使用套接字連接iis或apache,都可以使用HTTP / 1.1

誰能告訴我為什么,以及如何解決?

Web服務首先通過發送下一個塊的長度,以塊的形式返回內容。 它使用分塊傳輸編碼

您說的是可以使用GET /2/users/show.json HTTP/1.1

所有HTTP / 1.1應用程序都必須能夠接收和解碼“塊”傳輸編碼。

您可以使用類似Apache HttpClient或其他Java HTTP客戶端庫之類的東西來避免自己實現HTTP。

暫無
暫無

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

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