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" (вам не хватает ссылки на сборку?)
HttpClient
живет в System.Net.Http
Пространство имен.
Вам нужно добавить:
using System.Net.Http;
И убедитесь, что вы ссылаетесь на System.Net.Http.dll
в .NET 4.5.
Приведенный код не работает с webClient
. Что-то не так с кодом, который на самом деле компилируется с помощью HttpWebRequest
?
Обновление
Чтобы открыть диалоговое окно "Добавить ссылку", щелкните правой кнопкой мыши проект в обозревателе решений и выберите "Добавить ссылку". Он должен выглядеть примерно так:
System.Net.Http.dll
?
NuGet > Клиентские библиотеки веб-API Microsoft ASP.NET
Как я его решил.
В моем случае я имел в начале .Net 4.0 и "Assemblies" → "Extensions" вариант "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 и выберите "Добавить ссылку". Затем выберите вкладку "Обзор". Перейдите к установочному пути сборки для установки MVC4 (обычно в Program Files (x86)/Microsoft ASP.NET/ASP.NET MVC4/assembly) и выберите сборку с именем "System.Net.Http.dll". Теперь вы можете добавить свой "using System.Net.Http" вверху своего кода и начать создавать подключения HttpClient.
Для меня он получал пакет nuget Microsoft.Net.Http . (https://blogs.msdn.microsoft.com/bclteam/p/httpclient/)
просто перейдите, чтобы добавить ссылку, затем добавьте
system.net.http
Вам нужна ссылка на сборку System.Web.Http
, которая имеет класс HTTPClient
, который вы пытаетесь использовать. Попробуйте добавить строку ниже перед объявлением класса
using System.Web.Http;
Если вы все еще получаете ошибку, попробуйте сделать это в Visual Studio
System.Web.Http.dll
).Вам нужно using System.Net.Http
вверху.
HttpClient является новым в .net 4.5. Вероятно, вы должны использовать HttpWebRequest.
HttpWebRequest
, но не уверен, почему они его не используют.
use system.Net,
system.Net.WebRequest
У меня была аналогичная проблема или такая же проблема и исправлена она недавно. однако у меня также был добавлен файл system.net.http, но это не решило его.
Чтобы решить проблему,
1.go к вашему исследователю решений. 2. Щелкните правой кнопкой мыши имя проекта и выберите 3. Выберите ссылки и разрешите .Net framework 4.5 завершить загрузку. 4. Прокрутите вниз и выберите System.Net.Http и нажмите "ОК". Проблема решена.
webClient
). Кроме того, вы никогда не используете его для чего-либо. Вы могли бы просто удалить его.