programing

시스템과 함께 HTTP POST를 보내는 중입니다.Net.WebClient

subpage 2023. 5. 14. 10:40
반응형

시스템과 함께 HTTP POST를 보내는 중입니다.Net.WebClient

시스템으로 일부 양식 데이터와 함께 HTTP POST를 전송할 수 있습니까?Net.WebClient?

그렇지 않다면, HTTP POST를 수행할 수 있는 WebClient와 같은 다른 라이브러리가 있습니까?시스템을 사용할 수 있습니다.Net.HttpWebRequest입니다만, 그렇게 장황하지 않은 것을 찾고 있습니다.

바라건대 다음과 같이 보일 것입니다.

Using client As New TheHTTPLib
    client.FormData("parm1") = "somevalue"
    result = client.DownloadString(someurl, Method.POST)
End Using

@carlosfigueira의 답변을 바탕으로 WebClient의 방법을 자세히 조사한 결과 UploadValues가 바로 가 원하는 것입니다.

Using client As New Net.WebClient
    Dim reqparm As New Specialized.NameValueCollection
    reqparm.Add("param1", "somevalue")
    reqparm.Add("param2", "othervalue")
    Dim responsebytes = client.UploadValues(someurl, "POST", reqparm)
    Dim responsebody = (New Text.UTF8Encoding).GetString(responsebytes)
End Using

주요 부분은 다음과 같습니다.

client.UploadValues(someurl, "POST", reqparm)

내가 입력하는 동사를 전송하고, 적절한 URL 인코딩 양식 데이터를 만드는 데 도움이 되며, 매개 변수를 이름 값 컬렉션으로 제공하기만 하면 됩니다.

WebClient양식 데이터를 직접 지원하지는 않지만 UploadString 방법을 사용하여 HTTP 게시물을 보낼 수 있습니다.

Using client as new WebClient
    result = client.UploadString(someurl, "param1=somevalue&param2=othervalue")
End Using

http 동사에 관한 한.WebRequest더 쉬울 수도 있습니다.다음과 같은 것을 선택할 수 있습니다.

    WebRequest r = WebRequest.Create("http://some.url");
    r.Method = "POST";
    using (var s = r.GetResponse().GetResponseStream())
    {
        using (var reader = new StreamReader(r, FileMode.Open))
        {
            var content = reader.ReadToEnd();
        }
    }

분명히 이것은 예외 처리 및 요청 본문 작성이 부족합니다(사용할 수 있음).r.GetRequestStream()보통 스트림처럼 쓰지만 도움이 됐으면 좋겠습니다.

언급URL : https://stackoverflow.com/questions/8222092/sending-http-post-with-system-net-webclient

반응형