C#使用边界进行HTTP POST

3
我需要一点帮助在C#中设置HTTP Post。提前感谢您的任何帮助。
使用Fiddler,这是我的原始POST:
POST http://www.domain.com/tester.aspx HTTP/1.1
User-Agent: Tegan
Content-Type: multipart/form-data; boundary=myboundary
Host: www.domain.com
Content-Length: 1538
Expect: 100-continue


<some-xml>

        <customer>
                <user-id>george</user-id>
                <first-name>George</first-name>
                <last-name>Jones</last-name>
        </customer>

</some-xml>

我的要求有点棘手。它们需要一个带有边界的多部分帖子。我不熟悉如何设置边界。如果有人能协助我,我将不胜感激。
以下是我的要求:
POST http://www.domain.com/tester.aspx HTTP/1.0(CRLF)
User-Agent: myprogramname(CRLF)
Content-Type: multipart/form-data; boundary=myboundary(CRLF)
Content-Length: nnn(CRLF)
(CRLF)
(CRLF)
--myboundary(CRLF)
Content-Disposition: form-data; name=”xmlrequest”(CRLF)
Content-Type: text/xml(CRLF)
(CRLF)
(XML request message)(CRLF)
(CRLF)
--myboundary--(CRLF)

我认为这就是POST应该像的样子,但我需要一些关于我的C#的帮助。
POST http://www.domain.com/tester.aspx HTTP/1.1
User-Agent: Tegan
Content-Type: multipart/form-data; boundary=myboundary
Content-Length: 1538

--myboundary
Content-Disposition: form-data; name="xmlrequest"
Content-Type: text/xml

<some-xml>

            <customer>
                    <user-id>george</user-id>
                    <first-name>George</first-name>
                    <last-name>Jones</last-name>
            </customer>

    </some-xml>

(CRLF)
--myboundary--

这是我使用的C#代码来创建WebRequest。
HttpWebRequest request = null;
Uri uri = new Uri("http://domain.com/tester.aspx");
request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
request.UserAgent = "NPPD";
request.ContentType = "multipart/form-data; boundary=myboundary";
request.ContentLength = postData.Length;


using (Stream writeStream = request.GetRequestStream())
{
    writeStream.Write(postData, 0, postData.Length);
}
string result = string.Empty;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
    using (Stream responseStream = response.GetResponseStream())
    {
        using (StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8))
        {
            result = readStream.ReadToEnd();
        }
    }
}
return result;

在我看来,有一种更好的方法来完成这个任务。你能告诉我们你想要实现什么吗?(例如,上传一个文件) - Kyle Trauberman
2
我只是想向银行服务提供商发送XML Post请求。在这个行业里,一切都变得过于复杂了。 - Tegan Snyder
“在那个行业里,所有的东西都被过度复杂化了。” +1 - Kyle Trauberman
1个回答

6

Darin,这似乎有助于我更接近所需的内容。我会再试一下,并将此保持开放一天,并将您的答案标记为可接受的。谢谢。 - Tegan Snyder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接