2013-10-08 4 views
0

실제로 작동하지 않는 예제가있을 수 있습니다.본문으로 익명 형식의 간단한 HTTP POST

나는 다음과 같은 C#을 익명 형식의 개체를 가지고 싶습니다

var postBody = new 
{ 
    friend = new 
    { 
     name = "dave", 
     last ="franz" 
    }, 
    id = "12345", 
    login = "mylogin" 
}; 

을 다음과 같은 포스트 몸 간단한 HTTP의 POST 내 웹 서비스에 게시 :

{ 
    "friend" : 
    { 
     "name" : "dave", 
     "last" : "franz" 
    }, 
    "id" : "12345", 
    "login" : "mylogin" 
}; 

답변

4

사용하기 쉽고 Json.net입니다. VS에서 nuget 패키지 관리자를 사용하여 얻을 수 있습니다.

var postBody = new 
{ 
    friend = new 
    { 
     name = "dave", 
     last ="franz" 
    }, 
    id = "12345", 
    login = "mylogin" 
}; 
var postString = Newtonsoft.Json.JsonConvert.SerializeObject(postBody); 
using(var wc = new WebClient()) 
{ 
    wc.Headers.Add("Content-Type", "application/json"); 
    var responseString = wc.UploadString(serviceAddress, "POST", postString); 
} 
+0

너깃 패키지를 설치하지 않고도 솔루션을 선호했지만 이것은 초기 게시물에 언급되지 않았으므로 솔루션은 상당히 잘 작동합니다. 감사합니다 ! – guiomie

+1

@guiomie : 선호되는 ASP.NET MVC 솔루션은 JavaScriptSerializer를 사용합니다.이 JavaScriptSerializer는 쓸모없는 것으로 표시되었지만 (이 결정에 대해서는 상당한 혼란이 있습니다). 어쨌든 JSON.net을 선호합니다 ... 매우 안정적이며 BCL에서 제공되는 모든 것보다 훨씬 강력합니다. – spender