TL; DR: Ich bin neu in dieser Sprache und habe keine Ahnung, was ich mache
hier ist meine Klasse bisher:
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Web;
using System.Net;
using System.IO;
public class MyClass
{
private const string URL = "https://sub.domain.com/objects.json?api_key=123";
private const string data = @"{""object"":{""name"":""Title""}}";
public static void CreateObject()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = data.Length;
StreamWriter requestWriter = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
requestWriter.Write(data);
requestWriter.Close();
try
{
// get the response
WebResponse webResponse = request.GetResponse();
Stream webStream = webResponse.GetResponseStream();
StreamReader responseReader = new StreamReader(webStream);
string response = responseReader.ReadToEnd();
responseReader.Close();
}
catch (WebException we)
{
string webExceptionMessage = we.Message;
}
catch (Exception ex)
{
// no need to do anything special here....
}
}
static void Main(string[] args)
{
MyClass.CreateObject();
}
}
wenn ich csc filename.cs mache, erhalte ich die folgende Fehlermeldung:
Der Typ- oder Namespace-Name 'Http' ist im Namespace 'System.Net' nicht vorhanden (fehlt eine Assemblyreferenz?)
HttpClient
lebt im Namespace System.Net.Http
.
Sie müssen hinzufügen:
using System.Net.Http;
Stellen Sie sicher, dass Sie in .NET 4.5 auf System.Net.Http.dll
verweisen.
Der veröffentlichte Code scheint nichts mit webClient
zu tun. Stimmt etwas nicht mit dem Code, der HttpWebRequest
tatsächlich kompiliert?
Update
Um den Dialog Add Reference zu öffnen, klicken Sie mit der rechten Maustaste auf Ihr Projekt in Solution Explorer und wählen Sie Add Reference ... aus. Es sollte ungefähr so aussehen:
NuGet> Microsoft ASP.NET-Web-API-Clientbibliotheken
Wie habe ich es gelöst?.
In meinem Fall hatte ich am Anfang .Net 4.0 und "Assemblies" -> "Extensions" die Option "System.Net.Http" mit der Version 2.0.0.0. Nach meinen Aktionen "Assemblies" -> "Framework" hatten die Optionen "System.Net.Http" und "System.Net.Http" die gleiche Version 4.0.0.0.
Visual Studio Package Manager-Konsole> Installationspaket Microsoft.AspNet.WebApi.Client
Wenn Sie davon ausgehen, dass Sie Visual Studio 10 verwenden, können Sie hier eine Installation mit System.Net.Http für Visual Studio 10 herunterladen: MVC4 für VS10 herunterladen
Klicken Sie nach der Installation mit der rechten Maustaste auf den Ordner References im VS-Projekt und wählen Sie dann Referenz hinzufügen .. _. Wählen Sie dann die Registerkarte Browse aus. Navigieren Sie zu dem Installationspfad assemblies für die MVC4-Installation (normalerweise unter Programme (x86)/Microsoft ASP.NET/ASP.NET MVC4/Assemblys) und wählen Sie die Assembly mit dem Namen 'System.Net.Http.dll' aus. Jetzt können Sie Ihr 'using System.Net.Http' oben in Ihrem Code hinzufügen und mit dem Erstellen von HttpClient-Verbindungen beginnen.
Für mich war es das Nuget-Paket Microsoft.Net.Http .. ( https://blogs.msdn.Microsoft.com/bclteam/p/httpclient/ )
Sie benötigen einen Verweis auf die System.Web.Http
-Assembly mit der HTTPClient
-Klasse, die Sie verwenden möchten. Fügen Sie vor der Klassendeklaration die folgende Zeile ein
using System.Web.Http;
Wenn Sie immer noch den Fehler erhalten, versuchen Sie dies in Visual Studio
.
System.Web.Http.dll
).Sie benötigen oben einen using System.Net.Http
.
Um das Problem zu lösen,
1. Gehen Sie zu Ihrem Lösungs-Explorer. 2. Klicken Sie mit der rechten Maustaste auf den Projektnamen und wählen Sie Hinzufügen 3. Wählen Sie Referenzen aus und lassen Sie das .Net-Framework 4.5 vollständig geladen werden 4. Scrollen Sie nach unten und wählen Sie System.Net.Http aus, und klicken Sie auf OK . Problem gelöst.
Ich habe den Fehler auch nach dem Hinzufügen von System.Net.Http zu den Referenzen in Android erhalten und ich hatte bereits das Nugget-Paket Microsoft.net.http installiert.
Es stellte sich heraus, dass ich das System.Net.Http dem iOS-Projekt nicht hinzugefügt habe. Als ich es tat, löste es das Problem.
use system.Net,
system.Net.WebRequest
ich hatte ein ähnliches Problem oder dasselbe Problem und habe es kürzlich behoben. Allerdings hatte ich auch system.net.http hinzugefügt, aber das hat es nicht gelöst.
HttpClient ist neu in .net 4.5. Sie sollten wahrscheinlich HttpWebRequest verwenden.