Avatar billede globen Nybegynder
08. april 2008 - 13:54 Der er 5 kommentarer og
1 løsning

Custom http post

Hej Eksperter!

Jeg i en applikation, som bland andet sender transport instruktioner til vores transportør. Dette sendes via http protokollen. Vores transportør forventer at modtage et http post, som ser ud som nedenstående:

POST /hapld/tos/kdwapltos HTTP/1.1<cr/lf>
Host: www.pld-certify.ups.com<cr/lf>
Content-type: multipart/mixed; boundary=BOUNDARY<cr/lf>
Content-length: 1040<cr/lf>
<cr/lf>
--BOUNDARY<cr/lf>
Content-type: application/x-www-form-urlencoded<cr/lf>
Content-length: 140<cr/lf>
<cr/lf>
AppVersion=1.0&AcceptUPSLicenseAgreement=Yes&ResponseType=application/x-ups-pld&VersionNumber=V4R1&UserId=useridvalue&Password=passwordvalue<cr/lf>
<cr/lf>
--BOUNDARY<cr/lf>
Content-type: application/x-ups-binary<cr/lf>
Content-length: 719<cr/lf>
<cr/lf>
TRANSPORT_INSTRUCTION_MESSAGE<cr/lf>
<cr/lf>
--BOUNDARY--<cr/lf>


Findes der klasser i .NET, som gør at jeg kan konstruere en besked som dette?

Det skal siges, at det af andre årsager endnu ikke er bestemt om denne applikation skal udarbejdes i C# eller Java. Just in case nogen skulle snuble over et meget lignende indlæg under Java :D
Avatar billede globen Nybegynder
08. april 2008 - 13:55 #1
"Jeg i en applikation..." = "Jeg skal udvikle en applikation..." - godmorgen :D
Avatar billede arne_v Ekspert
08. april 2008 - 15:15 #2
I .NET er klassen (Http)WebRequest.

Eksempel:

    public static void upload(string url, string textfile)
    {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
        req.Method = "POST";
        req.ContentType = "multipart/form-data, boundary=" + BOUNDARY;
        StreamWriter post = new StreamWriter(req.GetRequestStream());
        post.WriteLine("--" + BOUNDARY);
        post.WriteLine("Content-disposition: form-data; name=\"f\"; filename=\"" + textfile + "\"");
        post.WriteLine("Content-type: text/plain");
        post.WriteLine("");
        StreamReader txtf = new StreamReader(new FileStream(textfile, FileMode.Open));
        string line;
        while ((line = txtf.ReadLine()) != null)
        {
            post.WriteLine(line);
        }
        txtf.Close();
        post.BaseStream.Flush();
        post.WriteLine("--" + BOUNDARY + "--");
        post.Close();
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        Console.WriteLine(resp.StatusCode);
        resp.Close();
    }
Avatar billede globen Nybegynder
09. april 2008 - 12:28 #3
Hvordan kommer variablen BOUNDARY ind i billedet?
Avatar billede arne_v Ekspert
09. april 2008 - 13:48 #4
det er bare en const med en tilfældig tekst streng
Avatar billede globen Nybegynder
11. april 2008 - 08:18 #5
Jeg besluttede mig for at, lave denne app i C#, og ovenstående eksempel fungeret uden probs. Arne du er for cool... Smid et svar :D
Avatar billede arne_v Ekspert
11. april 2008 - 13:37 #6
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester