我正在寻找通过互联网发送原始http 字符串的最简单方法。我不想摆弄标头、cookie 或内容属性、方法和所有“好”的东西。我希望它就像 Fiddler 一样:
您将整个字符串写入文本框 (1),然后单击“执行”(2)。你就完成了=利润。
我只想输入一些文本,然后发送。不多也不少。
如果Socket
该类没有将我的消息发送到 HTTPS 服务器失败,那就太棒了,例如,Fiddler 可以毫无问题地完成。
我正在寻找通过互联网发送原始http 字符串的最简单方法。我不想摆弄标头、cookie 或内容属性、方法和所有“好”的东西。我希望它就像 Fiddler 一样:
您将整个字符串写入文本框 (1),然后单击“执行”(2)。你就完成了=利润。
我只想输入一些文本,然后发送。不多也不少。
如果Socket
该类没有将我的消息发送到 HTTPS 服务器失败,那就太棒了,例如,Fiddler 可以毫无问题地完成。
您是否尝试过使用System.Net.WebClient?
示例来自:
using System;
using System.Net;
using System.IO;
public class Test
{
public static void Main (string[] args)
{
if (args == null || args.Length == 0)
{
throw new ApplicationException ("Specify the URI of the resource to retrieve.");
}
WebClient client = new WebClient ();
// Add a user agent header in case the
// requested URI contains a query.
client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
Stream data = client.OpenRead (args[0]);
StreamReader reader = new StreamReader (data);
string s = reader.ReadToEnd ();
Console.WriteLine (s);
data.Close ();
reader.Close ();
}
如果您可以选择使用System.Net.Http.HttpClient Class ,您可以很好地控制请求/响应例程(.NET 4.5):
string url = "https://site.com";
using (System.Net.Http.HttpClient client = new System.Net.Http.HttpClient())
{
var request = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, url);
var response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead))
...
编辑:
...一一设置字段....
查看HttpClient Extensions以获取可以帮助您“逐个设置字段”的助手
好的,经过很多麻烦,这是如何完成的:
var tcpClient = new TcpClient(hostName, port);
var stream = new SslStream(tcpClient.GetStream(), false, (sender, certificate, chain, errors) => true, null); //little hack
stream.AuthenticateAsClient(hostName);
//from now on you may write your usual stuff on the stream
是的,就是这么简单。
在http://msdn.microsoft.com/en-us/library/system.net.security.sslstream.aspx有更多示例