검색결과 리스트
Web 통신에 해당되는 글 1건
- 2011.08.19 [C#] Web 통신
글
일단 급하게 필요해서 짰는데 누군가 웹 서버 형태를 MIME 규칙에 따닥 하고 맞춰놔서
조금 고생 했다 -_-;;
샘플은 다음과 같다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;
using System.Web;
namespace WebSocket
{
class Program
{
static void Main()
{
try
{
Encoding encoding = Encoding.UTF8;
byte[] result = encoding.GetBytes("msg=메세지");
Uri uri = new Uri("url/경로/웹파일");
여기서 부터가 이제 시작이다.
각각의 타입에 맞게 지정하고
HttpWebRequest wReqFirst = (HttpWebRequest)WebRequest.Create(uri);
wReqFirst.Method = "POST";
이놈은 PHP에서 해당하는 내용 때문에 맞춘 내역이다.
$_SERVER["HTTP_USER_AGENT"]
$_SERVER["HTTP_TRANS_USER"]
$_SERVER["SCRIPT_FILENAME"]
$_SERVER["HTTP_TRANS_USER"]
$_POST["msg"]
base64_decode($_POST["msg"]
$_SERVER["HTTP_TRANS_KEY"]
이런 내용이 PHP에 적용이 되어 있었다.
처음엔 아무것도 모르고 그냥 Header 형태만 만들어서 날리면 되는 줄 알았는데..
그냥 단순 무식하게 생각한게 잘못이었다.
C#에서는 Header 자체를 자동적으로 만들어서 날리기 때문에 세부 사항만 맞춰서 처리 해 주면 된다.
그 예가 다음이다.
wReqFirst.UserAgent = "해당 사항";
wReqFirst.Headers.Add("trans-user", "해당 사항");
wReqFirst.ContentType = "application/x-www-form-urlencoded";
wReqFirst.ContentLength = result.Length;
wReqFirst.Headers.Add("trans-key", "MD5=md5규칙");
여기까지 해 주면 스트림을 열고 날려주면 된다.
Stream postDataStream = wReqFirst.GetRequestStream();
postDataStream.Write(result, 0, result.Length);
postDataStream.Close();
HttpWebResponse wRespFirst = (HttpWebResponse)wReqFirst.GetResponse();
Stream respPostStream = wRespFirst.GetResponseStream();
StreamReader readerPost = new StreamReader(respPostStream, Encoding.UTF8);
string resultPost = readerPost.ReadToEnd();
여기까지가 웹 서버에 요청한 내용을 담아두고 이 다음은 base64 처리를 해서 나타낸 것이다.
byte[] conv = Convert.FromBase64String(resultPost);
UTF8Encoding utf8 = new UTF8Encoding();
Console.WriteLine(utf8.GetString(conv));
}
catch (WebException ex)
{
}
}
}
}
나름 상큼하게 고민 좀 한거 같다;;
웹 서버 자체에 대해서 차근이 하다보면 다른 방법도 많을 거 같다.
어떻게 구성하냐 그 차이 일 수도 있겠지만..
그럼 간만에 블로깅은 여기까지!!
RECENT COMMENT