2016-08-08 58 views
1

Ich habe den folgenden Code, der auf .NET 4.0 funktioniert. Aber wenn ich das Zielframework auf .NET3.5 änderte, läuft es ohne Fehler, aber nicht mit dem Upload.System.Net.Http.HttpClient.PostAsync funktioniert nicht in .net3.5, aber in 4.0

Wenn debugged seine überspringen von der Linie resp.Result.EnsureSuccessStatusCode(); und führt nie die Zeilen unter oder zumindest die catch-Block.

(Übrigens ich System.Net.Http hinzugefügt haben 3,5 von hier nach .net seit Httpclient nicht mit NET3.5 ausgeliefert - https://www.nuget.org/packages/Rackspace.HttpClient35/1.0.0-beta003)

public string pp(string bb,string code,string kb) 
     { 
      try 
      { 
       HttpClient httpClient = new HttpClient(); 
       MultipartFormDataContent formx = new MultipartFormDataContent(); 

       formx.Add(new StringContent(code), "fn"); 
       var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(kb); 
       string kbb= System.Convert.ToBase64String(plainTextBytes); 
       formx.Add(new StringContent(kbb), "kb"); 

       formx.Add(new StringContent(bb), "img"); 

       var resp = httpClient.PostAsync("http://s.*****.com/put.php", formx); 

       resp.Result.EnsureSuccessStatusCode(); 
       httpClient.Dispose(); 
       string rep = resp.Result.Content.ReadAsStringAsync().Result; 
       return rep; 
      } 
      catch (Exception ee) { 
       return "no"; 
      } 
     } 
+0

Ich sehe das gleiche Problem, aber der seltsamste Teil ist, dass ich erfolgreich einen 'GetAsync' Aufruf ausführen kann, aber die' PostAsync' und 'SendAsync' Methoden hängen. – TPoschel

+0

Ich glaube, dass ich einen bekannten Fehler mit der Rackspace.HttpClient35-Bibliothek gefunden habe: https://github.com/tunnelvisionlabs/dotnet-httpclient35/issues/11 – TPoschel

Antwort

0

Ich denke postasync mit verfügbar ist neue Version. Sie können Dokument finden, mit denen sie Rahmen 4.0

bitte mit

Link unten gehen für mehr Details atleast müssen liefern

https://msdn.microsoft.com/en-us/library/gg597391.aspx

+0

Es kompiliert ohne irgendwelche Fehler überhaupt. Übrigens habe ich System.Net.Http zu .net 3.5 von hier hinzugefügt https://www.nuget.org/packages/Rackspace.HttpClient35/1.0.0-beta001 –

+0

Ich habe mit gegebenem Link gehen und ich denke Dies ist eine andere httpclint dll, da sie von rackspce abhängen. Dies ist kein Teil von .net framework. –

+0

Also gibt es keine Workaround dafür? –

0

HttpClient Bedeutung System.Net.Http.HttpClient nicht bis Version .NET 4.0 eingeführt wurde. Daher sollte es nicht einmal kompiliert werden.

Es ist möglich, dass Ihr Projekt nicht ordnungsgemäß neu erstellt wird (clean \ build), da der Compiler das Erstellen des Projekts nicht zulassen sollte.

+0

Es kompiliert ohne Fehler überhaupt. Übrigens habe ich System.Net.Http zu .net 3.5 von hier hinzugefügt https://www.nuget.org/packages/Rackspace.HttpClient35/1.0.0-beta001 –

+0

Das wäre eine gute Information zu den hinzufügen Post als 'HttpClient' existiert nicht und Sie verwenden ein Drittanbieter-Tool. – Nico

+0

OK, Frage bearbeitet –