MTK6260 HTTP和服务器联网怎么会出现 HTTP/1.1 400 Bad Request
移动卡出现 HTTP/1.1 400 Bad Request
但是联通卡就没有这个错误, 谁遇到过?
http请求移动卡:
{
"ID": 1,
"Method": "POST",
"Proto": "HTTP/1.1",
"Url": "/gps",
"Header": {
"Content-Length": [
"310"
],
"Content-Type": [
"application/json"
]
},
"Body": "{ \"id\":353456782569542, \"CLIent\":{\"caller\":\"device\", \"ex\":null}, \"data\":{ \"a\":\"b08e6df297a97a1f\",\"b\":80, \"c\":5, \"d\":\"00,460,9340,3982\",\"e\":1392746212, \"f\":\"22.3298,N,114.049355,E\",\"g\":1,\"h\":11.0,\"i\":210.0,\"j\":20.4,\"k\":4.25}, \"encrypt\":\"md5\",\"sign\":\"d221c5003eeb81031b3e2c549918a744\",\"format\":\"json\",\"v\":\"1.0\" }",
"IP": "211.139.145.104",
"CreateTime": "2014-02-26T16:29:27.716+08:00"
},
联通卡中国联通会自动在上面的代码的http头再加上
"X-Huawei-Nasip": [
"220.206.184.202"
],
"X-Huawei-Networktype": [
"GSM"
],
"X-Up-Calling-Line-Id": [
"8613164767067"
]
移动卡http返回
{
"id": 353456782569542,
"state": {
"code": 20000,
"msg": "success"
},
"data": {
"interval": 60
}
} HTTP/1.1 400 Bad Request
联通卡就没有没有的 HTTP/1.1 400 Bad Request
是不是需要服务器那边做下处理还是什么
这个和平台无关吧,建议你先在android 平台把http请求调通了再到60上做。确认服务端没问题,请求也没问题。
如果确认服务端没问题,请求也没问题。那是哪里出的问题 哈哈
联通卡走的华为的网关, 移动卡不是华为的网关
换联通卡的卡去联网就正常了!移动的就是多个这个
http头部信息是不是 host不是ip啊比如
host:"211.139.145.104:8080"
在网上查到如下信息:
http头中可以没有host字段吗?
在http 1.1中不能缺失host字段,如果缺失, 服务器返回400 bad request,http1.1中不能缺失host字段,但host字段可以是空值。
在http 1.0中可以缺失host字段。
RFC 2616中关于host字段的说明如下:
A client MUST include a Host header field in all HTTP/1.1 request
messages . If the requested URI does not include an Internet host
name for the service being requested, then the Host header field MUST
be given with an empty value. An HTTP/1.1 proxy MUST ensure that any
request message it forwards does contain an appropriate Host header
field that identifies the service being requested by the proxy. All
Internet-based HTTP/1.1 servers MUST respond with a 400 (Bad Request)
status code to any HTTP/1.1 request message which lacks a Host header
field.
strcat(sendbuf,"POST /gps HTTP/1.1");
strcat(sendbuf,CRLF);
strcat(sendbuf,"Host: www.gps5188.net");
====刘兄的意思是 Host: 后面的WWW地址修改为IP地址试试?
我以为你没有写 Host, 那应该不是这个问题吧,端口是80吗?
是80, 因为一个机器, 联通卡是好的, 就移动不行, 不知道是不是网关有什么区别, socket的话 都是没有问题的, 只是http存在这个跟着卡走的问题
看不懂哦!
你的http协议是自己实现的吗?
是的,自己实现的
那我觉得你应该考虑下是不是http协议某个地方有些东西没有考虑到, 而不应该先怀疑运营商。
以前那么多的sp公司做的联网应用都是支持所有运营商的。
以前的sp全部是基于socket的, 我们的socket也都是没有问题的.
6260用http协议联网还是很少的,毕竟流量消耗大!
http协议底层就是用socket啊。
这个看你前面写的是联通用代理网关,你需要把移动的代理网关填上
如果是走CMWAP是需要填写移动网关的,
l路过
学习一下。
没看明白,顶一下