Permalänk
Medlem

Get Http Json-C#

Har en kod som innan var till för att hämta xml resultat från Svs. Nu behöver den justeras för att hämta Json format men vet inte hur jag ska göra. Är nybörjare i C#, koden har jag frågat runt i olika forum för att få den att fungera. Ser kanske inte snygg ut men det funkade bra innan. "For loop" är med start och stopp nummer = omgångsnummer för att få ner flera resultat samtidigt
Tips mottages för att få det att fungera. Har VS gratis versionen med installerad Json.net

private void buttonHamta_Click(object sender, EventArgs e) { int LoopStart; int LoopStopp; LoopStart = int.Parse(TBLoopStart.Text); LoopStopp = int.Parse(TBLoopStopp.Text); //förkortningar string p1 = @"; string p2 = textBoxsparatill.Text; string p3 = comboBoxFilnamn.Text; string p4 = comboBoxFormat.Text; string p5 = textBoxUrl.Text; //Api key string p6 = CBEnds.Text; //rensar ListWiev listView1.Items.Clear(); toolStripStatusLabelhamtas.Visible = true; //For Loop for (int i = LoopStart; i < LoopStopp; i++) { string sFiles = string.Format(p5 + {0}", +i); listView1.Items.Add(new ListViewItem(p1 + p3 + i + p4 + p6)); { HttpWebRequest request = null; HttpWebResponse response = null; WebClient wc = new WebClient(); // The stopwatch which we will be using to calculate the download speed sw.Start(); string ret = ""; try { request = (HttpWebRequest)WebRequest.Create(sFiles.Trim()); request.Method = "GET"; //request.Method = "HEAD"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentType = "Content-Length".Length.ToString(); request.Timeout = 15000; response = (HttpWebResponse)request.GetResponse(); long len = response.ContentLength; ret = new StreamReader(response.GetResponseStream(), Encoding.Default).ReadToEnd();

Använd [code][/code]! /Mod
Permalänk
Hedersmedlem

Vad är det som inte fungerar? Själva nedladdningen borde väl fungera som förut (efter att adressen har uppdaterats)?

Permalänk
Medlem

URLen behöver ha en slash i sig på slutet om den ska ha någon chans att fungera, så funktionen av din kod är rätt beroende på att inmatningen görs rätt.

Du sätter content-type-headern två gånger och en GET-request ska inte ha någon body, så content-type-headern är onödig.

Du sätter inte accept-headern, så servern blir inte tillsagd explicit att den ska skicka tillbaka JSON.

Debugger och läsning av RFC7231 rekommenderas.

Permalänk
Medlem
Skrivet av KAD:

URLen behöver ha en slash i sig på slutet om den ska ha någon chans att fungera, så funktionen av din kod är rätt beroende på att inmatningen görs rätt.

Du sätter content-type-headern två gånger och en GET-request ska inte ha någon body, så content-type-headern är onödig.

Du sätter inte accept-headern, så servern blir inte tillsagd explicit att den ska skicka tillbaka JSON.

Debugger och läsning av RFC7231 rekommenderas.

En GET request kan ha en body, till och med specificerat i RFC7231

Permalänk
Medlem
Skrivet av Ernesto:

En GET request kan ha en body, till och med specificerat i RFC7231

Tack! Ska undersöka saken

Permalänk
Medlem
Skrivet av Ernesto:

En GET request kan ha en body, till och med specificerat i RFC7231

Tack alla för svar. Har gått över till Python, med deras moduler krävs det knappt nån kod alls för att få det jag vill utan några större programmeringskunskaper