System.Net.Http: отсутствует в пространстве имен? (используя .net 4.5)
TL; DR: Я новичок в этом языке и понятия не имею, что я делаю.
вот мой класс:
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();
}
}
когда я делаю csc filename.cs, я получаю следующую ошибку:
Тип или имя пространства имен "Http" не существует в пространстве имен "System.Net" (вам не хватает ссылки на сборку?)
Ответы
Ответ 1
HttpClient
живет в System.Net.Http
Пространство имен.
Вам нужно добавить:
using System.Net.Http;
И убедитесь, что вы ссылаетесь на System.Net.Http.dll
в .NET 4.5.
Приведенный код не работает с webClient
. Что-то не так с кодом, который на самом деле компилируется с помощью HttpWebRequest
?
Обновление
Чтобы открыть диалоговое окно "Добавить ссылку", щелкните правой кнопкой мыши проект в обозревателе решений и выберите "Добавить ссылку". Он должен выглядеть примерно так:
![enter image description here]()
Ответ 2
NuGet > Клиентские библиотеки веб-API Microsoft ASP.NET
Ответ 3
Как я его решил.
- Откройте проект (!) "Свойства", выберите "Приложение", выберите структуру таргетинга ".Net Framework 4.5"
- Щелкните правой кнопкой мыши на своем проекте → Добавить ссылку
- Убедитесь, что в разделе "Ассембли" → "Расширения" опция "System.Net.Http" не отмечена.
- Перейдите в раздел "Ассемблирования" → "Рамки" и выберите "System.Net.Http" и "System.Net.Http" .
- Вот и все!
В моем случае я имел в начале .Net 4.0 и "Assemblies" → "Extensions" вариант "System.Net.Http" с версией 2.0.0.0. После моих действий "Ассембли" → "Рамочные" опции "System.Net.Http" и "System.Net.Http" имели ту же версию 4.0.0.0.
Ответ 4
Консоль диспетчера пакетов Visual Studio > Install-Package Microsoft.AspNet.WebApi.Client
Ответ 5
Предполагая, что вы используете Visual Studio 10, вы можете загрузить установку, которая включает System.Net.Http, для Visual Studio 10 здесь: загрузить MVC4 для VS10
После того, как вы его установили, щелкните правой кнопкой мыши папку "Ссылки" в проекте VS и выберите "Добавить ссылку".
Затем выберите вкладку "Обзор". Перейдите к установочному пути сборки для установки MVC4 (обычно в Program Files (x86)/Microsoft ASP.NET/ASP.NET MVC4/assembly) и выберите сборку с именем "System.Net.Http.dll".
Теперь вы можете добавить свой "using System.Net.Http" вверху своего кода и начать создавать подключения HttpClient.
Ответ 6
Вам нужна ссылка на сборку System.Web.Http
, которая имеет класс HTTPClient
, который вы пытаетесь использовать. Попробуйте добавить строку ниже перед объявлением класса
using System.Web.Http;
Если вы все еще получаете ошибку, попробуйте сделать это в Visual Studio
- Щелкните правой кнопкой мыши на папке "Ссылки" в вашем проекте.
- Выберите Добавить ссылку.
- Выберите вкладку .NET(или выберите кнопку "Обзор", если она не является сборкой .NET Framework).
- Дважды щелкните узел, содержащий пространство имен, в сообщении об ошибке (
System.Web.Http.dll
).
- Нажмите кнопку OK.
Ответ 7
просто перейдите, чтобы добавить ссылку, затем добавьте
system.net.http
![введите описание изображения здесь]()
Ответ 8
Для меня он получал пакет nuget Microsoft.Net.Http
. (https://blogs.msdn.microsoft.com/bclteam/p/httpclient/)
Ответ 9
Вам нужно using System.Net.Http
вверху.
Ответ 10
HttpClient является новым в .net 4.5. Вероятно, вы должны использовать HttpWebRequest.
Ответ 11
Чтобы решить проблему:
- Перейти к вашему исследователю решения.
- Щелкните правой кнопкой мыши по названию проекта и выберите добавить
- Выберите ссылки и позвольте.
Net framework 4.5
завершить загрузку
- Прокрутите вниз, выберите
System.Net.Http
и нажмите кнопку ОК.
Задача решена.
Ответ 12
use system.Net,
system.Net.WebRequest
У меня была аналогичная проблема или такая же проблема и исправлена она недавно.
однако у меня также был добавлен файл system.net.http, но это не решило его.
Ответ 13
Я продолжал получать ошибку даже после добавления использования System.Net.Http к ссылкам в Android, и я уже установил пакет самородков microsoft.net.http.
Оказалось, что я не добавил System.Net.Http в проект iOS, когда я это сделал, это решило проблему.
Ответ 14
Сделав свойство "Copy Local" True для ссылки, сделало это для меня. Разверните "Ссылки", щелкните правой кнопкой мыши System.Net.Http и измените значение свойства "Копировать локальное" на "Истина" в окне свойств. Я использую VS2019.
Ответ 15
В Visual Studio вы можете использовать nuget для загрузки пакета
Microsoft.AspNet.WebApi.WebHost