我正在尝试使用Hyper 0.9向站点发送POST请求.该请求适用于curl:
curl https://api.particle.io/v1/devices/secret/set_light -d args=0 -d access_token=secret
Run Code Online (Sandbox Code Playgroud)
和Python:
import requests
r = requests.post("https://api.particle.io/v1/devices/secret/set_light",
data={"access_token": "secret", "args": "0"})
Run Code Online (Sandbox Code Playgroud)
但我的Rust实现似乎没有通过,总是屈服400.
use hyper::client::Client;
let addr = "https://api.particle.io/v1/devices/secret/set_light";
let body = "access_token=secret&args=0";
let mut res = client.post(addr)
.body(body)
.send()
.unwrap();
Run Code Online (Sandbox Code Playgroud)
了解用于调试此类HTTP问题的各种工具非常有用.在这种情况下,我曾经nc启动一个哑服务器,所以我可以看到HTTP客户端发送的头(nc -l 5000).我修改了cURL和Rust示例指向127.0.0.1:5000,这是输出:
卷曲:
POST /v1/devices/secret/set_light HTTP/1.1
Host: 127.0.0.1:5000
User-Agent: curl/7.43.0
Accept: */*
Content-Length: 26
Content-Type: application/x-www-form-urlencoded
args=0&access_token=secret
Run Code Online (Sandbox Code Playgroud)
超:
POST /v1/devices/secret/set_light HTTP/1.1
Host: 127.0.0.1:5000
Content-Length: 26
access_token=secret&args=0
Run Code Online (Sandbox Code Playgroud)
我没有在particle.io上有一个帐户来测试,但我猜你需要那个Content-Type标题.设置一个User-Agent很好的礼仪,Accept标题更符合你的利益,所以你也可以设置它们.
| 归档时间: |
|
| 查看次数: |
1026 次 |
| 最近记录: |