C# HTTP-POST-Grenze mit
Ich brauche ein wenig Hilfe, einrichten eines HTTP Post mit C#. Ich Schätze jede Hilfe, die ich vorab erhalten.
Mithilfe von Fiddler ' hier ist mein RAW-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>
Meine Anforderungen sind ein wenig schwierig. Sie erfordern eine multi-part-post mit einer Grenze. Ich bin nicht vertraut mit dem einrichten einer Grenze. Wenn einer helfen kann würde ich mich freuen.
Hier sind meine Anforderungen:
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)
Also ich denke, das ist es, was der POST sollte so Aussehen, aber ich brauche etwas Hilfe mit meinem 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--
Hier ist der C# code, verwende ich zum erstellen des 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;
- Es scheint mir, dass es einen besseren Weg, dies zu tun. Können Sie uns aufklären, was Sie versuchen zu erreichen? (zum Beispiel, laden Sie eine Datei hoch)
- Ich versuche nur, das senden einer XML-Nachricht an eine Banking-Anbieter. Alles ist kompliziert in dieser Branche.
- +1 für "Alles ist kompliziert in dieser Branche"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich gebloggt über dies und präsentierte eine Beispiel-Methode, die verwendet werden könnten, zu senden
multipart/form-data
Anfragen. Checkout hier: http://www.bratched.com/en/home/dotnet/69-uploading-multiple-files-with-c.html