Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用纯Java套接字的纯HTTP/1.1与nginx对话?_Java_Sockets_Http_Nginx - Fatal编程技术网

如何使用纯Java套接字的纯HTTP/1.1与nginx对话?

如何使用纯Java套接字的纯HTTP/1.1与nginx对话?,java,sockets,http,nginx,Java,Sockets,Http,Nginx,我通过套接字连接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.

我通过套接字连接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.1的HTTP/1.0实例,它将返回:

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"}
如果我使用socket connect iis或apache,则可以使用HTTP/1.1


任何人都可以告诉我为什么,以及如何解决?

Web服务通过首先发送下一个区块的长度,以区块的形式返回内容。它正在使用

您是说您可以使用GET/2/users/show.json HTTP/1.1和

所有HTTP/1.1应用程序必须能够接收和解码 分块传输编码


您可以使用Apache HttpClient或其他Java HTTP客户端库来避免自己实现HTTP。

谢谢您的回答。我只是学习HTTP协议,使用socket可以让我了解更多。如果套接字返回0,这意味着我可以关闭套接字?如果使用分块,我可以在哪里看到?或者只是自己做?如果在使用分块传输编码时在分块后从套接字/流中读取0,则可以关闭套接字。如果您指的是套接字上返回0的read调用的返回值,那么这只意味着没有可从套接字读取的数据。如果连接关闭,它将返回-1。的可能重复项