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

введите описание изображения здесь

Ответ 9

Вам нужно using System.Net.Http вверху.

Ответ 10

HttpClient является новым в .net 4.5. Вероятно, вы должны использовать HttpWebRequest.

Ответ 11

Чтобы решить проблему:

  1. Перейти к вашему исследователю решения.
  2. Щелкните правой кнопкой мыши по названию проекта и выберите добавить
  3. Выберите ссылки и позвольте. Net framework 4.5 завершить загрузку
  4. Прокрутите вниз, выберите 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