【问题标题】:multiple custom request header entries using HttpClient使用 HttpClient 的多个自定义请求标头条目
【发布时间】: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 及其正确

标签: c# asp.net


【解决方案1】:

尝试设置referer,如下:

client.DefaultRequestHeaders.Referer = https://portal.idtbeyond.com/activedocs

并确保您使用的是正确的 GatewayUrl

【讨论】:

  • 感谢您的回复,我遇到的问题是多个标题,当我查看我的网络时 - X-idt 参数附加到标题的 Accepts 部分。注释掉两个 x-idt 参数会返回来自网关的未授权响应。我已经验证了网关 url 及其正确
猜你喜欢
  • 2016-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-09
  • 2023-03-21
  • 1970-01-01
相关资源
最近更新 更多