【发布时间】:2015-07-20 11:00:04
【问题描述】:
我希望在发送请求之前为我的 httpclient 对象设置多个自定义请求标头条目。我要发送的请求应如下所示:
Request Headers
Connection:keep-alive
Content-Length:213
Content-Type:application/json
Host:portal.idtbeyond.com
Origin:https://portal.idtbeyond.com
Referer:https://portal.idtbeyond.com/activedocs
x-idt-beyond-app-id:xxccccxx
x-idt-beyond-app-key:yyuuuttttddfdfdfdfdfd
X-Requested-With:XMLHttpRequest
Request Payload
view parsed
{
"country_code": "SV",
"carrier_code": "Claro",
"mobile_number": "50363751234",
"plan": "Sandbox",
"amount": "500",
"client_transaction_id": "",
"terminal_id": "KIOSK 1",
"origin_country": "US"
}
我用 C# 编写的代码如下:
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(_ProviderService.GatewayUrl);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("x-idt-beyond-app-id",
_PayingMerchant.Username);
client.DefaultRequestHeaders.Add("x-idt-beyond-app-key",
_PayingMerchant.Password);
var urlSuffix = GetUrlSuffix(trans);
HttpResponseMessage response = client.GetAsync(urlSuffix).Result;
if (response.IsSuccessStatusCode)
{
TopUpResponse topUpResponse =
response.Content.ReadAsAsync<TopUpResponse>().Result;
if (topUpResponse.success)
{
result.Success = true;
result.ReturnValue = true;
}
}
}
我收到 404 响应,调试显示标题部分是我的错误。我对这些请求不熟悉,希望能提供任何帮助。
问候
【问题讨论】:
-
404 通常表示您尝试传递给的特定服务不存在;如果是标头问题,通常会返回 400 错误请求或替代错误...您确定因为标头而返回 404 吗?
-
感谢您的回复,当我查看我的网络时,我遇到的问题是多个标头 - X-idt 参数附加到标头的 Accepts 部分。注释掉两个 x-idt 参数会返回来自网关的未授权响应。我已经验证了网关 url 及其正确