C#中,如何用exe程序发出http请求?Get方式
移动有个地址,可以发送短信,账号、密码、接收号码、短信内容都是以参数形式跟在地址栏后面的。这些参数我都有,问题在于,如何用EXE发出HTTP请求呢?求一个例子,http地...
移动有个地址,可以发送短信,账号、密码、接收号码、短信内容都是以参数形式跟在地址栏后面的。这些参数我都有,问题在于,如何用EXE发出HTTP请求呢?求一个例子,http地址请用url代替,请达人封装一个方法。另外,就是如何获取这个页面的返回值呢?
展开
4个回答
展开全部
using System;
using System.IO;
using System.Net;
using System.Text;
public class Test
{
public static void Main()
{
string url = "http://www.baidu.com";
Encoding encoding = Encoding.GetEncoding("gb2312");
string html = GetHtml(url, encoding);
if (!string.IsNullOrEmpty(html))
{
Console.WriteLine(html);
}
}
public static string GetHtml(string url, Encoding encoding)
{
string html = string.Empty;
try
{
WebRequest request;
request = WebRequest.Create(url);
request.Credentials = CredentialCache.DefaultCredentials;
request.Timeout = 20000;
WebResponse response;
response = request.GetResponse();
html = new StreamReader(response.GetResponseStream(), encoding).ReadToEnd();
}
catch (System.UriFormatException uex)
{
Console.WriteLine(uex.Message);
}
catch (System.Net.WebException ex)
{
Console.WriteLine(ex.Message);
}
return html;
}
}
using System.IO;
using System.Net;
using System.Text;
public class Test
{
public static void Main()
{
string url = "http://www.baidu.com";
Encoding encoding = Encoding.GetEncoding("gb2312");
string html = GetHtml(url, encoding);
if (!string.IsNullOrEmpty(html))
{
Console.WriteLine(html);
}
}
public static string GetHtml(string url, Encoding encoding)
{
string html = string.Empty;
try
{
WebRequest request;
request = WebRequest.Create(url);
request.Credentials = CredentialCache.DefaultCredentials;
request.Timeout = 20000;
WebResponse response;
response = request.GetResponse();
html = new StreamReader(response.GetResponseStream(), encoding).ReadToEnd();
}
catch (System.UriFormatException uex)
{
Console.WriteLine(uex.Message);
}
catch (System.Net.WebException ex)
{
Console.WriteLine(ex.Message);
}
return html;
}
}
更多追问追答
追问
你好,你的方法确实实现了我期望的目标,但是有点小问题,就是编码似乎不对,我的中文字符全部给变乱码了,请问如何解决?
追答
Encoding encoding = Encoding.GetEncoding("gb2312");
==
Encoding encoding = Encoding.GetEncoding("utf-8");
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用WebRequest
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
WebBrowers
或
WebClient
类
自己看MSDN
或
WebClient
类
自己看MSDN
追问
友情提示下这位哥,你酱紫回答,只会降低你的采纳率的。
追答
不需要封装,WebBrowers和WebClient类就能实现,
VS2005的MSDN的URL是ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.chs/cpref10/html/T_System_Net_WebClient_Members.htm
由于不知道你对 这两个类的了解程度,所以你需要自己看MSDN中的描述,篇幅较长,不宜粘贴。
只能告诉你大概的实现流程
先用WebClient类GetWebRequest(URL),URL中加入GET的参数(就像网页中那样提交)
然后用GetWebResponse方法获取在返回的页面中的内容。注意关于页面中的内容那些是你要的,这跟你服务器端设计有关,建议你Response.write回一个格式化的字符串,然后把他还原成对象,或者使用XML会更方便一些
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
WebRequest类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询