3 Stimmen

C# HTTP POST mit Boundary

Ich brauche etwas Hilfe dabei, einen HTTP-Post in C# einzurichten. Ich schätze jede Hilfe im Voraus.

Hier ist mein RAW POST mit Fiddler:

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

                george
                George
                Jones

Meine Anforderungen sind etwas kompliziert. Sie erfordern ein Mehrteiliges POST mit einer Grenze. Ich bin nicht vertraut damit, eine Grenze einzurichten. Wenn jemand helfen kann, würde ich es zu schätzen wissen.

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-Anforderungsnachricht)(CRLF)
(CRLF)
--myboundary--(CRLF)

Also glaube ich, dass der POST so aussehen sollte, 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

                    george
                    George
                    Jones

(CRLF)
--myboundary--

Hier ist der C#-Code, den ich verwende, um die Webanforderung zu erstellen.

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;

0 Stimmen

Es scheint mir, dass es einen besseren Weg gibt, dies zu tun. Können Sie uns erklären, was Sie erreichen möchten? (zum Beispiel, eine Datei hochladen)

2 Stimmen

Ich versuche nur, einen XML-Post an einen Bankenanbieter zu senden. Alles ist in dieser Branche überkompliziert.

0 Stimmen

+1 für "Alles ist in dieser Branche überkompliziert"

6voto

Darin Dimitrov Punkte 990883

Ich habe darüber gebloggt und eine Beispiel-Methode vorgestellt, die verwendet werden könnte, um multipart/form-data-Anfragen zu senden. Schau hier nach: http://www.bratched.com/de/home/dotnet/69-uploading-multiple-files-with-c.html

0 Stimmen

Darin, das scheint mir ein wenig näher an dem zu sein, was benötigt wird. Ich werde noch ein wenig damit herumspielen und das hier für einen weiteren Tag offen lassen und deine Antwort als akzeptabel markieren. Danke

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X