System.Net. Http: отсутствует в пространстве имен? (using.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 имя файла.CS я получаю следующую ошибку:

имя типа или пространства имен 'Http' не существует в пространстве имен 'System.Net "(вы пропустили ссылку на сборку?)

14 80

14 ответов:

HttpClient живет в System.Net.Http пространство имен.

вам нужно будет добавить:

using System.Net.Http;

и убедитесь, что вы ссылаетесь System.Net.Http.dll в .NET 4.5.


опубликованный код, похоже, ничего не делает с webClient. Есть ли что-то не так с кодом, который на самом деле компилируется с помощью HttpWebRequest?


обновление

открыть Добавить Ссылку диалог щелкните правой кнопкой мыши на вашем проекте в Обозреватель и выберите Добавить Ссылку.... Это должно выглядеть примерно так:

enter image description here

NuGet > Microsoft ASP.NET клиентские библиотеки web API

Как я это решил.

  1. открыть проект (!) "Свойства", выберите "приложение", выберите targeting framework ".Net Framework 4.5"
  2. щелкните правой кнопкой мыши на вашем проекте - > добавить ссылку
  3. убедитесь, что в разделе "сборки" -> "расширения" опция "System.Net.Http" не отмечена
  4. перейдите в раздел "сборки" - > " фреймворк "и выберите" System.Net.Http "и" System.Net.Http " параметры
  5. вот и все!

в моем случае я имел в начало .Net 4.0 и" сборки "- > " расширения "опция" System.Net.Http " с версией 2.0.0.0. После моих действий "сборки" - > " рамки "параметры" System.Net.Http "и" System.Net.Http " имели ту же версию 4.0.0.0.

Консоль Диспетчера Пакетов Visual Studio > Установить-Пакет Microsoft.сеть САШ.Веб-API.Клиент

предполагая, что вы используете Visual Studio 10, вы можете загрузить установку, которая включает System.Net. Http, для Visual Studio 10 здесь: скачать MVC4 для VS10

после того, как вы установили его, щелкните правой кнопкой мыши на ссылки папка в проекте VS, а затем выберите Добавить Ссылку. Затем выберите обзор tab. Перейдите к сборки путь установки для установки MVC4 (обычно в программе Файлы(х86) Майкрософт ASP.NET/ASP.NET помощью MVC4/сборки) и выберите сборку, которую назвал 'System.Net.Http.dll'. Теперь вы можете добавить свои, используя систему.Чистая.Протокол HTTP' в верхней части вашего кода и приступить к созданию соединений с помощью HttpClient.

вы должны иметь ссылку на System.Web.Http сборка, которая имеет HTTPClient класс, вы пытаетесь использовать. Попробуйте добавить строку ниже перед объявлением класса

using System.Web.Http;

если вы все еще получаете ошибку, попробуйте сделать это в Visual Studio

  1. щелкните правой кнопкой мыши на папке ссылки в вашем проекте.
  2. Выберите Добавить Ссылку.
  3. выберите вкладку .NET (или нажмите кнопку Обзор, если это не платформа .NET Framework собрание.)
  4. дважды щелкните сборку, содержащую пространство имен в сообщении об ошибке (System.Web.Http.dll).
  5. Нажмите кнопку OK.

просто перейдите, чтобы добавить ссылку, а затем добавить

system.net.http

enter image description here

для меня это было получение пакета nuget Microsoft. Net. Http .(https://blogs.msdn.microsoft.com/bclteam/p/httpclient/)

вам понадобится using System.Net.Http в верхней части.

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

чтобы решить проблему,

1.перейдите в Обозреватель решений. 2. Щелкните правой кнопкой мыши на имени проекта и выберите Добавить 3. Выберите ссылки и разрешите платформе .Net framework 4.5 завершить загрузку 4. Прокрутите вниз и выберите System.Net.Http и нажмите кнопку ОК. Проблема решена.

                                      use system.Net, 
                                     system.Net.WebRequest

У меня была аналогичная проблема или же isue и исправлена недавно. однако у меня также была system.net.http, добавленная раньше, но это не решило ее.

Я продолжал получать ошибку даже после добавления using System.Net.Http к ссылкам в android, и я уже установил пакет Nugget microsoft.net. http.

оказалось, что я не добавил System.Net.Http в проект iOS, когда я это сделал, это решило проблему.

в Visual Studio вы можете использовать nuget для загрузки пакета

Microsoft.AspNet.WebApi.WebHost