매개 변수를 WebRequest에 전달해야합니다. 매개 변수는 NameValueCollection으로 사용할 수 있습니다. 바이트 배열을 반환해야합니다.NameValueCollection을 바이트 배열로 변환하는 방법
어떻게하면됩니까?
매개 변수를 WebRequest에 전달해야합니다. 매개 변수는 NameValueCollection으로 사용할 수 있습니다. 바이트 배열을 반환해야합니다.NameValueCollection을 바이트 배열로 변환하는 방법
어떻게하면됩니까?
. 그리고 GET
을 사용하면 URL의 끝 부분에 붙일 수 있기 때문에 POST
을하고 있다고 가정합니다.
그래서, 당신은 먼저 웹 요청의 요청 스트림에 기록되어있는 POST
의 몸 작성해야합니다 :이 시점에서
var sb = new StringBuilder();
foreach(var item in myCollection) {
sb.AppendFormat("{0}={1}&", item.Name, HttpUtility.UrlEncode(item.Value.ToString()));
}
sb.Remove(sb.Length - 1, 1); // remove the last '&'
을, 당신은 같은 문자열을 포함하는 문자열 버퍼를해야합니다 "myVal1=Hello%20World&myVal2=5"
. 이제 요청 스트림에 작성하려고합니다.
var request = (HttpWebRequest)HttpWebRequest.Create("http://somewhere.url/asdf/asdf");
request.Method = "POST";
var stream = request.GetRequestStream();
var bytes = Encoding.UTF8.GetBytes(sb.ToString());
request.ContentType="application/x-www-form-urlencoded;charset=UTF-8";
request.ContentLength = data.Length;
stream.Write(bytes, 0, bytes.Length);
stream.Close();
var response = (HttpWebResponse)request.GetResponse();
// ... process the response ...
희망이 있습니다. 귀하의 NameValueCollection이 string -> object 형태로 있다고 가정했습니다. "item.Value
"부분이 다른 경우이를 조정하십시오. 나는 URL 인코딩 키를 받아들이지 않는다고 생각하기 때문에 한 쌍의 키 인코딩도하지 않았다.
먼저 NameValueCollection을 serialize해야합니다.
String str = "";
str = mynvc.key + "=" + mynvc.value;
다음 바이트 배열이 문자열을 변환하려면이 옵션을 사용 WebRequest
그냥 추상 클래스이기 때문에 나는, 당신이 HttpWebRequest
을 의미 있으리라 믿고있어
System.Text.UTF8Encoding encoding=new System.Text.UTF8Encoding();
Byte[] myStr = encoding.GetBytes(str);
이것은 컬렉션에 하나의 값만 있다고 가정합니다. 값이 여러 개인 경우이를 구분하는 방법은 무엇입니까? – shashi
NVC 항목을 어떻게 유지하는지 모르기 때문에이 방법으로 작성했습니다. 래퍼 객체가 있습니까? foreach를 사용하면됩니다. –
? 우리는 더 많은 정보가 필요합니다. –