2016-08-15 129 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(); 
相關問題