2016-08-15 46 views
0

要在PostAsync方法中以查询字符串的形式发送数据,我正在使用以下方法。但我得到了Inernal服务器错误。使用PostAsync发送httpcontent会导致内部服务器错误

HttpResponseMessage response; 
string stringContent = "{ 'request_key': 'ABCD1234', 'request_code': 'CODE', 'request_type':'ID_type' }"; 
using(var client = new HttpClient()) { 

       client.BaseAddress = new Uri(SubscriptionUtility.GetConfiguration("BaseURI")); 
       client.DefaultRequestHeaders.Clear(); 
       client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(SubscriptionUtility.GetConfiguration("ContentType"))); 
       client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", SubscriptionUtility.GetConfiguration("BasicAuthentication")); 

       response = await client.PostAsync(SubscriptionUtility.GetConfiguration("SubscriptionAPI"), stringContent, new JsonMediaTypeFormatter()); 
       if(response.IsSuccessStatusCode) { 

        var dataObjects = JsonConvert.DeserializeObject<List<TestClass>>(response.Content.ReadAsStringAsync().Result); 
        //foreach(var d in dataObjects) { 

        //} 
       } 
      } 

但是当我通过fiddler发送请求时,它的工作正常。这里是我的小提琴手要求

的User-Agent:提琴手

内容类型:应用程序/ JSON的;字符集= UTF-8

主机:testapi.com

的Content-Length:93

授权:基本12fbe6e1f63d832aa33232323

邮政数据: { “request_key”: “ABCD1234” , “request_code”:“CODE”, “request_type”:“ID_type” }

+0

,什么是不使用招当跟踪的欲望的功能? –

+0

fyi基本授权将授权:基本12fbe6e1f63d832aa33232323,不是令牌 –

回答

0

我已经实现了用以下方法 Post Request

using(var client = new HttpClient()) { 


       client.BaseAddress = new Uri(SubscriptionUtility.GetConfiguration("BaseURI")); 
       client.DefaultRequestHeaders.Clear(); 
       client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(SubscriptionUtility.GetConfiguration("ContentType"))); 
       client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", SubscriptionUtility.GetConfiguration("BasicAuthentication")); 
       var values = new Dictionary<string, string> 
        { 
         { "request_key", "ABCD1234" }, 
         { "request_code", "CODE" }, 
         { "request_type", "ID_type" } 
        }; 

       var content = new FormUrlEncodedContent(values); 

       var response = await client.PostAsync(SubscriptionUtility.GetConfiguration("SubscriptionAPI"), content); 
       var responseString = await response.Content.ReadAsStringAsync(); 
相关问题