728x90

Web 사이트에 C#에서 보내는 값을 저장하는 예제이다.

form 에서 보내는 데이터처럼 데이터를 보내는 식으로 값을 전달하면 저장된다.

테스트를 위해서 작성해본 것이라서 소스 내용이 정교하지는 못하다.

PostData 값을 전달하는 부분만 수정해서 사용하기 위해 작성해둔다.


private void btnSave_Click(object sender, EventArgs e)
{
    if (cat1name.Text.Trim() == "")
    {
        MessageBox.Show("카테고리1을 입력하세요", "알림", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        this.cat1name.Focus();
    }
    else if (cat2name.Text.Trim() == "")
    {
        MessageBox.Show("카테고리2을 입력하세요", "알림", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        this.cat2name.Focus();
    }
    else if (textBox1.Text.Trim() == "")
    {
        MessageBox.Show("이름을 입력하세요", "알림", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        this.textBox1.Focus();
    }
    else if (mobile1.Text.Trim() == "")
    {
        MessageBox.Show("휴대폰번호 입력하세요", "알림", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        this.mobile1.Focus();
    }
    else if (mobile2.Text.Trim() == "")
    {
        MessageBox.Show("휴대폰번호 입력하세요", "알림", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        this.mobile2.Focus();
    }
    else if (mobile3.Text.Trim() == "")
    {
        MessageBox.Show("휴대폰번호 입력하세요", "알림", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        this.mobile3.Focus();
    }
    else
    {
        NameValueCollection strqry = new NameValueCollection();
        strqry.Add("uid", uid.Text.Trim());
        strqry.Add("category1", cat1name.Text.Trim());
        strqry.Add("category2", cat2name.Text.Trim());
        strqry.Add("name", textBox1.Text.Trim());
        strqry.Add("email", textBox2.Text.Trim());
        strqry.Add("mobile_1", mobile1.Text.Trim());
        strqry.Add("mobile_2", mobile2.Text.Trim());
        strqry.Add("mobile_3", mobile3.Text.Trim());

        Address_DBSave(strqry);
    }           
}

private string Address_DBSave(NameValueCollection strqry)
{
    // 주소록 DB에 저장하는 메소드
    string url = "http://www.abc.com/";
    // PostData 코드 부분
    string boundary = "-----------------------------267631966917210";
    string end_boundary = "-----------------------------267631966917210--\r\n";

    StringBuilder sb = new StringBuilder();
    foreach (string fieldName in strqry.Keys)
    {
        string fieldValue = strqry.Get(fieldName);
        sb.AppendFormat("{0}\r\n" + "Content-Disposition: form-data; name={1}\r\n\r\n{2}\r\n", boundary, fieldName, fieldValue);
    }
    sb.Append(end_boundary);
    string PostData = sb.ToString();

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.Method = "POST";
    byte[] sendData = UTF8Encoding.UTF8.GetBytes(PostData);
    // Web Header 분석기에서 구한 POST 정보를 여기에 적는다

    Stream dataStream = request.GetRequestStream();
    dataStream.Write(sendData, 0, sendData.Length);
    dataStream.Close();

    string resResult = string.Empty;
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    StreamReader readerPost = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8, true);
    resResult = readerPost.ReadToEnd();
    readerPost.Close();
    response.Close();
    //MessageBox.Show(resResult);

    if (resResult.IndexOf("등록") != -1)
    {
        MessageBox.Show("등록되었습니다");
    }
    return null;
}


블로그 이미지

Link2Me

,