微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > MTK6260 HTTP和服务器联网怎么会出现 HTTP/1.1 400 Bad Request

MTK6260 HTTP和服务器联网怎么会出现 HTTP/1.1 400 Bad Request

时间:10-02 整理:3721RD 点击:
6260 用 HTTP和服务器联网,用jason格式打包数据,
移动卡出现 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路过

学习一下。

没看明白,顶一下

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top