curl получил неверный запрос, в то время как httpie и почтальон работали нормально - PullRequest
0 голосов
/ 29 января 2019

Это сложная проблема, которая заставила меня запутаться.когда я использовал httpie или почтальон, он работал нормально, но получал плохой запрос по curl.

Вот мой код:

http post http://myexaplesite.com/iSSC/wxapi/v1/token --debug  

HTTPie 1.0.2
Requests 2.20.1
Pygments 2.3.0
Python 3.7.2 (default, Jan 13 2019, 12:51:54) 

>>> requests.request(**{
    "allow_redirects": false,
    "auth": "None",
    "cert": "None",
    "data": {},
    "files": {},
    "headers": {
        "User-Agent": "HTTPie/1.0.2"
    },
    "method": "post",
    "params": {},
    "proxies": {},
    "stream": true,
    "timeout": 30,
    "url": "http://myexaplesite.com/iSSC/wxapi/v1/token",
    "verify": true
})

HTTP/1.1 200 OK
Connection: keep-alive
Content-Type: application/json
Date: Tue, 29 Jan 2019 07:35:29 GMT
Proxy-Connection: keep-alive
Server: elb
Set-Cookie: f808689e40834f08ba52985b14d1842c=WyIyNDg2ODYyNjgiXQ; Expires=Wed, 30-Jan-19 07:35:29 GMT; Domain=myexaplesite.com; Path=/; HttpOnly
Transfer-Encoding: chunked

{
    "access_token": "just the token...",
    "expires_in": 3600,
    "token_type": "Bearer"
}


Как вы могли видеть выше, работает и почтальон.
Но когда curl:

curl -X POST http://myexaplesite.com/iSSC/wxapi/v1/token -i  

HTTP/1.1 400 Bad Request
Date: Tue, 29 Jan 2019 07:39:43 GMT
Content-Type: text/html
Content-Length: 0
Connection: keep-alive
Server: elb
Set-Cookie: f808689e40834f08ba52985b14d1842c=WyIyNDg2ODYyNjgiXQ; Expires=Wed, 30-Jan-19 07:39:43 GMT; Domain=myexaplesite.com; Path=/; HttpOnly
Proxy-Connection: keep-alive

Я думал, что нет большой разницы, но почему не работает curl?


Получил причину, тип содержимого запроса должен быть Application / json, поэтому измените curl на:

curl -d '' http://myexaplesite.com/iSSC/wxapi/v1/token -i

отлично работает.

...