RSS

HttpWebRequestとHttpWebClient

22 1月
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using MySettings = global::WebClient.Properties.Settings;

namespace WebClient
{
 public partial class Form1 : Form
 {
 delegate void SetTextCallback(string text);
 HttpWebRequest request = null;

 /// <summary>
 /// コンストラクタ
 /// </summary>
 public Form1()
 {
 InitializeComponent();
 }

 /// <summary>
 /// Enterが押されたとき
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
 {
 if (e.KeyChar == '\r')
 {
 if (MessageBox.Show(textBox1.Text + "へ要求を送信してよいですか?", "確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No)
 {
 MySettings.Default.LastInput = textBox1.Text;
 MySettings.Default.Save();
 this.Request();
 }
 }
 }

 /// <summary>
 /// ウェブサーバへ要求を送信する。
 /// </summary>
 private void Request()
 {
 object state = new object();
 this.request = HttpWebRequest.Create(textBox1.Text) as HttpWebRequest;
 IAsyncResult response = request.BeginGetResponse(
 delegate(IAsyncResult ar)
 {
 try
 {
 WebResponse wres = request.EndGetResponse(ar);
 Stream stream = wres.GetResponseStream();
 StreamReader rs = new StreamReader(stream, Encoding.Default);
 Char[] read = new Char[256];
 int count = rs.Read(read, 0, 256);
 StringBuilder sb = new StringBuilder();

 while (count > 0)
 {
 String str = new String(read, 0, count);
 sb.Append(str);
 count = rs.Read(read, 0, 256);
 }

 rs.Close();
 SetText(sb.ToString());
 }
 catch (Exception ex)
 {
 SetText("エラー:" + ex.Message);
 }
 }
 , state
 );
 }

 /// <summary>
 /// ワーカースレッドで文字列をtextBox2の表示文字列に設定する。
 /// </summary>
 /// <param name="text"></param>
 private void SetText(string text)
 {
 if (this.textBox2.InvokeRequired)
 {
 SetTextCallback d = new SetTextCallback(SetText);
 this.Invoke(d, new object[] { text });
 }
 else
 {
 this.textBox2.Text = text;
 }
 }


 /// <summary>
 /// フォームが開くとき
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Form1_Load(object sender, EventArgs e)
 {
 textBox1.Text = MySettings.Default.LastInput;
 }

 /// <summary>
 /// Requestボタン
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void button1_Click(object sender, EventArgs e)
 {
 try
 {
 MySettings.Default.LastInput = textBox1.Text;
 MySettings.Default.Save();
 this.Request();
 }
 catch (Exception ex)
 {
 MessageBox.Show(ex.Message, "エラー");
 }
 }
 }
}
 
1件のコメント

投稿者: : 2011/01/22 投稿先 C#

 

HttpWebRequestとHttpWebClient」への1件のフィードバック

  1. furqan_mr

    2011/04/28 at 00:03

    like this🙂

     

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。