2016-08-15 5 views
0

PostAsync 메서드에서 데이터를 쿼리 문자열로 보내려면 다음 방법을 사용하고 있습니다. 하지만 Inernal Server Error가 발생합니다.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) { 

        //} 
       } 
      } 

하지만 피들러를 통해 요청을 보내면 잘 작동합니다. 여기

사용자 에이전트 내 피들러 요청입니다 : 피들러

콘텐츠 형식 : 응용 프로그램/JSON; 문자셋 = UTF-8

호스트 : testapi.com

콘텐츠 길이 : 93

인증 : 기본 12fbe6e1f63d832aa33232323

포스트 데이터 : { "request_key": "ABCD1234" , "request_code": "CODE", "request_type": "ID_type"

+0

및 피들러를 사용하지 않는 추적이 무엇을 사용하여 욕망의 기능을 달성했다? –

+0

기본 권한은 다음과 같습니다. 인증 : 기본 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(); 
관련 문제