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 (вам не хватает ссылки на сборку?)
webClient
поля). Кроме того, вы никогда не используете его ни для чего. Вы могли бы просто удалить его.Ответы:
HttpClient
живет вSystem.Net.Http
пространстве имен.Вам нужно будет добавить:
И убедитесь, что вы ссылаетесь
System.Net.Http.dll
на .NET 4.5.Опубликованный код, похоже, ничего не делает с
webClient
. Что-то не так с кодом, который фактически компилируетсяHttpWebRequest
?Обновить
Чтобы открыть диалоговое окно « Добавить ссылку », щелкните правой кнопкой мыши проект в обозревателе решений и выберите « Добавить ссылку ...» . Это должно выглядеть примерно так:
источник
System.Net.Http.dll
?Add References
когда появится диалоговое окно, выберите крайнюю левую вкладку (я не использую встроенное диалоговое окно ссылок, но мое называется « Сборки» ). Прокрутите список до тех пор, пока не увидите элемент с названиемSystem.Net.Http
дважды щелкните его и перестройте.NuGet> Пакет Microsoft.AspNet.WebApi.Client
источник
Как я это решил.
В моем случае у меня в начале был .Net 4.0 и «Сборки» -> «Расширения», опция «System.Net.Http» с версией 2.0.0.0. После моих действий «Сборки» -> «Фреймворк» в параметрах «System.Net.Http» и «System.Net.Http» была одна и та же версия 4.0.0.0.
источник
Консоль диспетчера пакетов Visual Studio> Install-Package Microsoft.AspNet.WebApi.Client
источник
Предполагая, что вы используете Visual Studio 10, вы можете загрузить установку, включающую System.Net.Http, для Visual Studio 10 здесь: скачать MVC4 для VS10
После установки щелкните правой кнопкой мыши папку « Ссылки » в VS Project и выберите « Добавить ссылку» . Затем выберите вкладку Обзор . Перейдите к пути установки сборок для установки MVC4 (обычно в Program Files (x86) / Microsoft ASP.NET/ASP.NET MVC4 / Assemblies) и выберите сборку с именем «System.Net.Http.dll». Теперь вы можете добавить «using System.Net.Http» в начало кода и начать создание подключений HttpClient.
источник
просто перейдите, чтобы добавить ссылку, затем добавьте
источник
У вас должна быть ссылка на
System.Web.Http
сборку, в которой естьHTTPClient
класс, который вы пытаетесь использовать. Попробуйте добавить строку ниже перед объявлением классаЕсли ошибка по-прежнему появляется, попробуйте сделать это в
Visual Studio
System.Web.Http.dll
).источник
HttpClient
принадлежитSystem.Web.Http.dll
сборке .NET 4.5 (неSystem.Net
).Properties
. Вы должны увидетьReferences
слева.Для меня это был пакет nuget Microsoft.Net.Http. ( Https://blogs.msdn.microsoft.com/bclteam/p/httpclient/ )
источник
Вам понадобится
using System.Net.Http
наверху.источник
HttpClient является новым в .NET 4.5. Вероятно, вам следует использовать HttpWebRequest .
источник
HttpWebRequest
, но не уверен, почему они его не используют.Решить проблему :
Net framework 4.5
закончить загрузкуSystem.Net.Http
и нажмите ОК.Задача решена.
источник
Для меня это сделало свойство "Копировать локальное" как True для ссылки. Разверните «Ссылки», щелкните правой кнопкой мыши System.Net.Http и измените значение свойства «Копировать локальное» на «Истина» в окне свойств. Я использую VS2019.
источник
Убедитесь, что он указан в вашем web.config:
источник
С помощью диспетчера пакетов Nuget установите Microsoft.AspNet.WebApi.Core.
После этого:
или если вы используете VB
imports System.Web.Http
источник
У меня возникла эта проблема после обновления до .NET Framework 4.7.2. Я обнаружил, что пакет Nuget для System.Net.Http больше не рекомендуется. Вот обходные пути:
источник
В Visual Studio вы можете использовать nuget для загрузки пакета
источник