TL; DR: Saya baru mengenal bahasa ini dan tidak tahu apa yang saya lakukan
ini kelas saya sejauh ini:
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();
}
}
ketika saya melakukan csc filename.cs, saya mendapatkan kesalahan berikut:
Jenis atau nama namespace 'Http' tidak ada di namespace 'System.Net' (apakah Anda kehilangan referensi perakitan?)
webClient
bidang). Selain itu, Anda tidak pernah benar-benar menggunakannya untuk apa pun. Anda mungkin bisa menghapusnya begitu saja.Jawaban:
HttpClient
tinggal diSystem.Net.Http
namespace.Anda perlu menambahkan:
Dan pastikan Anda merujuk
System.Net.Http.dll
pada .NET 4.5.Kode yang diposting tampaknya tidak ada hubungannya dengan
webClient
. Apakah ada yang salah dengan kode yang sebenarnya sedang dikompilasi menggunakanHttpWebRequest
?Memperbarui
Untuk membuka Menambahkan referensi dialog klik kanan pada proyek Anda dalam Solution Explorer dan pilih Add Reference ... . Ini akan terlihat seperti:
sumber
System.Net.Http.dll
?Add References
saat dialog muncul, pilih tab paling kiri (Saya tidak menggunakan dialog referensi bawaan tetapi milik saya disebut Assemblies ). Gulir daftar hingga Anda melihat item yang disebutSystem.Net.Http
klik dua kali dan bangun kembali.NuGet> paket Microsoft.AspNet.WebApi.Client
sumber
Bagaimana saya memecahkannya.
Dalam kasus saya, saya punya di awal .Net 4.0 dan "Assemblies" -> "Extensions" opsi "System.Net.Http" dengan versi 2.0.0.0. Setelah tindakan saya, "Assemblies" -> "Framework" opsi "System.Net.Http" dan "System.Net.Http" memiliki versi 4.0.0.0 yang sama.
sumber
Konsol Manajer Paket Visual Studio> Instal-Paket Microsoft.AspNet.WebApi.Client
sumber
Dengan asumsi Anda menggunakan Visual Studio 10, Anda dapat mengunduh penginstalan yang menyertakan System.Net.Http, untuk Visual Studio 10 di sini: unduh MVC4 untuk VS10
Setelah Anda menginstalnya, klik kanan pada folder Referensi di Proyek VS dan kemudian pilih Tambahkan Referensi . Kemudian, pilih tab Telusuri . Arahkan ke jalur pemasangan majelis untuk pemasangan MVC4 (biasanya di Program Files (x86) / Microsoft ASP.NET/ASP.NET MVC4 / assemblies) dan pilih majelis bernama 'System.Net.Http.dll'. Sekarang Anda dapat menambahkan 'using System.Net.Http' di bagian atas kode Anda dan mulai membuat koneksi HttpClient.
sumber
cukup pergi untuk menambahkan referensi lalu tambahkan
sumber
Anda perlu memiliki Referensi ke
System.Web.Http
majelis yang memilikiHTTPClient
kelas, yang Anda coba gunakan. Coba tambahkan baris di bawah ini sebelum deklarasi kelas AndaJika Anda masih mendapatkan Kesalahan, coba lakukan ini di
Visual Studio
System.Web.Http.dll
).sumber
HttpClient
milikSystem.Web.Http.dll
rakitan .NET 4.5 (bukanSystem.Net
).Properties
. Anda harus melihatReferences
di sisi kiri.Bagi saya, itu mendapatkan paket nuget Microsoft.Net.Http. ( Https://blogs.msdn.microsoft.com/bclteam/p/httpclient/ )
sumber
Anda akan membutuhkan
using System.Net.Http
di bagian atas.sumber
HttpClient baru di .net 4.5. Anda mungkin harus menggunakan HttpWebRequest .
sumber
HttpWebRequest
, meskipun tidak yakin mengapa mereka tidak menggunakannya.Untuk memecahkan masalah :
Net framework 4.5
untuk menyelesaikan pemuatanSystem.Net.Http
dan klik ok.Masalah terpecahkan.
sumber
Menjadikan properti "Salin Lokal" Benar untuk referensi telah membantu saya. Perluas Referensi, klik kanan pada System.Net.Http dan ubah nilai properti Salin Lokal ke True di jendela properti. Saya menggunakan VS2019.
sumber
Pastikan itu direferensikan di web.config Anda:
sumber
Dengan Nuget Package Manager instal Microsoft.AspNet.WebApi.Core.
Sesudah ini:
atau jika Anda menggunakan VB
imports System.Web.Http
sumber
Saya mengalami masalah ini setelah memutakhirkan ke .NET Framework 4.7.2. Saya menemukan bahwa paket Nuget untuk System.Net.Http tidak lagi direkomendasikan. Berikut ini solusinya:
sumber
Dalam Visual Studio Anda dapat menggunakan nuget untuk memuat paket
sumber