1

我正在寻找通过互联网发送原始http 字符串的最简单方法。我不想摆弄标头、cookie 或内容属性、方法和所有“好”的东西。我希望它就像 Fiddler 一样:

在此处输入图像描述

您将整个字符串写入文本框 (1),然后单击“执行”(2)。你就完成了=利润。

我只想输入一些文本,然后发送。不多也不少。

如果Socket该类没有将我的消息发送到 HTTPS 服务器失败,那就太棒了,例如,Fiddler 可以毫无问题地完成。

4

3 回答 3

2

您是否尝试过使用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 ();
    }
于 2013-03-16T03:49:34.267 回答
1

如果您可以选择使用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以获取可以帮助您“逐个设置字段”的助手

于 2013-03-16T04:29:45.357 回答
1

好的,经过很多麻烦,这是如何完成的:

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有更多示例

于 2013-03-18T03:17:58.023 回答