将 curl 转换为 HtttClient 请求
Converting curl to HtttClient request
我正在尝试在 HttpClient 中执行此 curl 请求(来自 API 文档):
请注意,下面的代码只是从他们的文档中复制而来,不包含我的任何信息。
POST /oauth/token(获取访问令牌)
$ curl -v -X POST https://api.tink.com/api/v1/oauth/token \
-d 'code=1a513b99126ade1e7718135019fd119a' \
-d 'client_id=YOUR_CLIENT_ID' \
-d 'client_secret=YOUR_CLIENT_SECRET' \
-d 'grant_type=authorization_code'
{
"access_token": "78b0525677c7414e8b202c48be57f3da",
"token_type": "bearer",
"expires_in": 7200,
"refresh_token": "33f10ce3cb1941b8a274af53da03f361",
"scope": "accounts:read,statistics:read,transactions:read,user:read"
}
我尝试向 oauth/token 端点发出 post 请求,请求的所有信息都是 header(空 body)和一个 json 文档(有和没有 headers)。
当我只有 header 中的信息时,我得到了 401,但我已经验证所有数据都是正确的。我尝试过的所有其他方法都生成了 400。
据我了解curl下面的json是响应,但是我一点都不习惯curl。
这里有一个方便的网站:https://curl.olsh.me/
我不建议通过网络发送机密信息,因此请务必先匿名化这些值,然后再将它们翻译回来。
因此对于您粘贴的命令,您会得到:
using (var httpClient = new HttpClient())
{
using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://api.tink.com/api/v1/oauth/token"))
{
var contentList = new List<string>();
contentList.Add("code=1a513b99126ade1e7718135019fd119a");
contentList.Add("client_id=YOUR_CLIENT_ID");
contentList.Add("client_secret=YOUR_CLIENT_SECRET");
contentList.Add("grant_type=authorization_code");
request.Content = new StringContent(string.Join("&", contentList));
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
var response = await httpClient.SendAsync(request);
}
}
您返回的 401 headers 可能是由于传递了错误的 ID 和密码,我想您有办法获得测试凭据。
我正在尝试在 HttpClient 中执行此 curl 请求(来自 API 文档): 请注意,下面的代码只是从他们的文档中复制而来,不包含我的任何信息。
POST /oauth/token(获取访问令牌)
$ curl -v -X POST https://api.tink.com/api/v1/oauth/token \
-d 'code=1a513b99126ade1e7718135019fd119a' \
-d 'client_id=YOUR_CLIENT_ID' \
-d 'client_secret=YOUR_CLIENT_SECRET' \
-d 'grant_type=authorization_code'
{
"access_token": "78b0525677c7414e8b202c48be57f3da",
"token_type": "bearer",
"expires_in": 7200,
"refresh_token": "33f10ce3cb1941b8a274af53da03f361",
"scope": "accounts:read,statistics:read,transactions:read,user:read"
}
我尝试向 oauth/token 端点发出 post 请求,请求的所有信息都是 header(空 body)和一个 json 文档(有和没有 headers)。 当我只有 header 中的信息时,我得到了 401,但我已经验证所有数据都是正确的。我尝试过的所有其他方法都生成了 400。
据我了解curl下面的json是响应,但是我一点都不习惯curl。
这里有一个方便的网站:https://curl.olsh.me/
我不建议通过网络发送机密信息,因此请务必先匿名化这些值,然后再将它们翻译回来。
因此对于您粘贴的命令,您会得到:
using (var httpClient = new HttpClient())
{
using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://api.tink.com/api/v1/oauth/token"))
{
var contentList = new List<string>();
contentList.Add("code=1a513b99126ade1e7718135019fd119a");
contentList.Add("client_id=YOUR_CLIENT_ID");
contentList.Add("client_secret=YOUR_CLIENT_SECRET");
contentList.Add("grant_type=authorization_code");
request.Content = new StringContent(string.Join("&", contentList));
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
var response = await httpClient.SendAsync(request);
}
}
您返回的 401 headers 可能是由于传递了错误的 ID 和密码,我想您有办法获得测试凭据。