System.Net.Http: отсутствует в пространстве имен?(используя .net 4.5) - PullRequest
93 голосов
/ 08 марта 2012

TL;ДР: Я новичок в этом языке и понятия не имею, что я делаю

, вот мой класс:

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' (отсутствует ссылка на сборку?)

Ответы [ 14 ]

99 голосов
/ 08 марта 2012

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

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

using System.Net.Http;

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


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


Обновление

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

enter image description here

73 голосов
/ 02 декабря 2012

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

12 голосов
/ 04 июня 2015

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

  1. Откройте проект (!) «Свойства», выберите «Приложение», выберите таргетинг фреймворка «.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.

9 голосов
/ 23 сентября 2015

Консоль диспетчера пакетов Visual Studio> Пакет установки Microsoft.AspNet.WebApi.Client

5 голосов
/ 01 января 2013

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

Как только выустановив его, щелкните правой кнопкой мыши папку References в проекте VS и выберите Добавить ссылку .Затем выберите вкладку Обзор .Перейдите к сборкам путь установки для установки MVC4 (обычно в Program Files (x86) / Microsoft ASP.NET/ASP.NET MVC4 / сборки) и выберите сборку с именем 'System.Net.Http.dll».Теперь вы можете добавить свой «using System.Net.Http» вверху кода и начать создавать соединения HttpClient.

3 голосов
/ 13 апреля 2017

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

3 голосов
/ 01 сентября 2015

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

system.net.http

enter image description here

3 голосов
/ 08 марта 2012

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

using System.Web.Http;

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

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

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

0 голосов
/ 28 сентября 2018

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

Microsoft.AspNet.WebApi.WebHost
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...