TL; DR: Ich bin neu in dieser Sprache und habe keine Ahnung, was ich tue
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 den folgenden Fehler:
Der Typ- oder Namespace-Name 'Http' ist im Namespace 'System.Net' nicht vorhanden (fehlt Ihnen eine Assembly-Referenz?)
webClient
Feld) auf ein nicht statisches Feld zuzugreifen . Außerdem benutzt man es nie für irgendetwas. Sie könnten es wahrscheinlich einfach entfernen.Antworten:
HttpClient
lebt imSystem.Net.Http
Namespace.Sie müssen hinzufügen:
Stellen Sie sicher, dass Sie
System.Net.Http.dll
in .NET 4.5 referenzieren .Der veröffentlichte Code scheint nichts damit zu tun zu haben
webClient
. Stimmt etwas mit dem Code nicht, mit dem tatsächlich kompiliert wirdHttpWebRequest
?Aktualisieren
Um das Öffnen Verweis hinzufügen Dialog der rechten Maustaste auf Ihr Projekt in Projektmappen - Explorer , und wählen Sie Verweis hinzufügen ... . Es sollte ungefähr so aussehen:
quelle
System.Net.Http.dll
?Add References
wenn das Dialogfeld angezeigt wird. Wählen Sie die Registerkarte ganz links aus (ich verwende das integrierte Referenzdialogfeld nicht, aber mein Dialogfeld heißt Baugruppen ). Scrollen Sie durch die Liste, bis Sie ein Element namensSystem.Net.Http
Doppelklick darauf sehen und neu erstellen.NuGet> Microsoft.AspNet.WebApi.Client-Paket
quelle
Wie ich es gelöst habe.
In meinem Fall hatte ich am Anfang .Net 4.0 und "Assemblies" -> "Extensions" Option "System.Net.Http" mit Version 2.0.0.0. Nach meinen Aktionen hatten "Assemblies" -> "Framework" -Optionen "System.Net.Http" und "System.Net.Http" dieselbe Version 4.0.0.0.
quelle
Visual Studio Package Manager-Konsole> Installationspaket Microsoft.AspNet.WebApi.Client
quelle
Angenommen, Sie verwenden Visual Studio 10, können Sie hier eine Installation herunterladen, die System.Net.Http für Visual Studio 10 enthält: Laden Sie MVC4 für VS10 herunter
Klicken Sie nach der Installation mit der rechten Maustaste auf den Ordner " Referenzen " im VS-Projekt und wählen Sie "Referenz hinzufügen" . Wählen Sie dann das Durchsuchen Registerkarte. Navigieren Sie zu den Baugruppen Installationspfad für die MVC4 installieren ( in der Regel in Program Files (x86) / Microsoft ASP.NET/ASP.NET MVC4 / Baugruppen) und wählen Sie die Assembly mit dem Namen 'System.Net.Http.dll'. Jetzt können Sie Ihr 'using System.Net.Http' oben in Ihren Code einfügen und mit dem Erstellen von HttpClient-Verbindungen beginnen.
quelle
Gehen Sie einfach zu Referenz hinzufügen und dann hinzufügen
quelle
Sie benötigen einen Verweis auf die
System.Web.Http
Assembly mit derHTTPClient
Klasse, die Sie verwenden möchten. Versuchen Sie, die folgende Zeile vor Ihrer Klassendeklaration hinzuzufügenWenn der Fehler weiterhin auftritt, versuchen Sie dies in
Visual Studio
System.Web.Http.dll
) enthält.quelle
HttpClient
gehört zurSystem.Web.Http.dll
.NET 4.5-Assembly (nichtSystem.Net
).Properties
. Sie solltenReferences
auf der linken Seite sehen.Für mich wurde das Nuget-Paket Microsoft.Net.Http ( https://blogs.msdn.microsoft.com/bclteam/p/httpclient/ ) abgerufen.
quelle
Du brauchst ein
using System.Net.Http
oben.quelle
HttpClient ist neu in .net 4.5. Sie sollten wahrscheinlich HttpWebRequest verwenden .
quelle
HttpWebRequest
, nicht sicher, warum er nicht verwendet wird.Um das Problem zu lösen :
Net framework 4.5
Laden beendenSystem.Net.Http
und klicken Sie auf OK.Problem gelöst.
quelle
Die Eigenschaft "Copy Local" für die Referenz auf "True" zu setzen, hat dies für mich getan. Erweitern Sie Verweise, klicken Sie mit der rechten Maustaste auf System.Net.Http und ändern Sie den Wert der Eigenschaft "Lokal kopieren" im Eigenschaftenfenster in "Wahr". Ich benutze VS2019.
quelle
Stellen Sie sicher, dass in Ihrer web.config darauf verwiesen wird:
quelle
Installieren Sie mit dem Nuget Package Manager Microsoft.AspNet.WebApi.Core.
Danach:
oder wenn Sie VB verwenden
imports System.Web.Http
quelle
Ich hatte dieses Problem nach dem Upgrade auf .NET Framework 4.7.2. Ich habe herausgefunden, dass das Nuget-Paket für System.Net.Http nicht mehr empfohlen wird. Hier sind Problemumgehungen:
quelle
In Visual Studio können Sie das Paket mit nuget laden
quelle