2015-07-19 94 views
0

我希望在发送请求之前为我的httpclient对象拥有多个自定义请求标头条目。我想发送请求应该是这样的:使用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响应和调试表明,头节对我来说错了。我对这些请求不熟悉,并希望得到任何帮助。

问候

+2

404通常表明你正在试图通过向不特定服务存在;如果它是一个头的问题,通常会返回一个400错误的请求或替代错误...您确定404因为头返回吗? –

+0

感谢您的回复,我遇到的问题是多个标题,当我查看我的网络时 - X-idt params被附加到标题的接受部分。注释掉两个x-idt参数将返回来自网关的未经授权的响应。我已验证网关网址及其正确 – Dzidzai

回答

0

尝试设置引荐以及如下:

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

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

+0

感谢回复,我遇到的问题是多个标题,当我查看网络时 - X-idt params被附加到标题的接受部分。注释掉两个x-idt参数将返回来自网关的未经授权的响应。我已验证网关网址及其正确性 – Dzidzai

相关问题