2013-11-21 3 views
0

안녕하세요, VB.NET 또는 C#으로 변환하려는 다음 cURL 명령을 사용하십시오.cURL 명령을 .NET으로 변환

curl https://api.box.com/2.0/users \-H "Authorization: Bearer ACCESS_TOKEN" \ -d '{"login": "[email protected]", "name": "Ned Stark"}' \ -X POST 

내가 VB.NET에서 다음을 시도했다 :

Dim url As String = "https://api.box.com/2.0/users" 
Dim wrq = CType(Net.WebRequest.Create(url), HttpWebRequest) 
Dim postString As String = "[email protected]&name=Ned Stark" 

wrq.Headers.Add("Authorization: Bearer " & o2ses.AccessToken) 
wrq.Method = "POST" 
wrq.ContentType = "application/x-www-form-urlencoded" 
wrq.ContentLength = postString.Length 

Dim wrqWriter As New StreamWriter(wrq.GetRequestStream()) 
wrqWriter.Write(postString) 
wrqWriter.Close() 

Dim responseReader As New StreamReader(wrq.GetResponse().GetResponseStream()) 
Dim responseData As String = responseReader.ReadToEnd() 

내가 곱슬 곱슬하는 newb 오전 .NET에서의 HttpWebRequest를 사용하여,하지만 컬 전에 .NET 명령을 변환 한 (감사 이 사이트에 :)),하지만 그들 중 -d 옵션을 사용하는 사람은 없으므로 잃어 버릴 수 있습니다. 아래 행이 실행되면 오류 400 (잘못된 요청)이 반환됩니다.

Dim responseReader As New StreamReader(wrq.GetResponse().GetResponseStream()) 

는 나는 내가 (즉, 그것이 필요 매개 변수의 이름을 '적절한'로그인 '을 받고 아니에요)를 전송하고 어떤 데이터를 함께 할 수있다 생각합니다.

도움을 주시면 감사하겠습니다. 필요한 경우 더 많은 정보를 제공 할 수 있습니다. 언급했듯이, 나는 이것에 newb, 그래서 최선을 다할 것입니다.

감사합니다.

+0

((HttpUtility.UrlEncode 참조) 또는 여기에 예를 들어 HTTP ://stackoverflow.com/a/14703032/99256). –

+0

응답 및 링크 주셔서 감사합니다. stringbuilder로 'poststring'을 정의하고 urlencoded 데이터를 추가하도록 코드를 수정했지만 웹 서비스에서 여전히 '나쁜 요청 (400)'을받습니다. – user1146024

답변

0

나는 vb.net 모르지만 나는 인증 헤더는 다음과 같이해야한다고 생각 :

귀하의 게시물 문자열을 URL 인코딩해야
wrq.Headers.Add(HttpRequestHeader.Authorization, "Bearer " & o2ses.AccessToken); 
+0

응답 해 주셔서 감사합니다. 추천 된 라인을 변경했지만 여전히 동일한 결과를 보였습니다. – user1146024

+0

Fiddler (http://fiddler2.com/home)를 설치하고 응용 프로그램의 요청을 살펴볼 것을 권장합니다 (http://stackoverflow.com/questions/935181/how-to-view-the-headers). -sent-by-httpwebrequest). 이렇게하면 .NET 응용 프로그램의 헤더와 컬의 헤더를 비교할 수 있습니다. –