TL; DR: Eu sou novo nessa linguagem e não tenho ideia do que estou fazendo
aqui está minha aula até agora:
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();
}
}
quando eu faço csc filename.cs, obtenho o seguinte erro:
O tipo ou nome de namespace 'Http' não existe no namespace 'System.Net' (está faltando uma referência de assembly?)
webClient
campo). Além disso, você nunca o usa para nada. Você provavelmente poderia simplesmente removê-lo.Respostas:
HttpClient
mora noSystem.Net.Http
namespace.Você precisará adicionar:
E certifique-se de que está fazendo referência
System.Net.Http.dll
no .NET 4.5.O código postado não parece fazer nada com
webClient
. Há algo de errado com o código que está realmente sendo compiladoHttpWebRequest
?Atualizar
Para abrir o Add Reference diálogo botão direito do mouse em seu projeto no Solution Explorer e selecione Add Reference ... . Deve ser parecido com:
fonte
System.Net.Http.dll
?Add References
quando a caixa de diálogo aparecer, selecione a guia mais à esquerda (eu não uso a caixa de diálogo de referências internas, mas a minha é chamada de Assemblies ). Role a lista até ver um item chamadoSystem.Net.Http
clique duas vezes nele e reconstrua.Pacote NuGet> Microsoft.AspNet.WebApi.Client
fonte
Como eu resolvi isso.
No meu caso eu tinha no início .Net 4.0 e "Assemblies" -> "Extensions" a opção "System.Net.Http" com a versão 2.0.0.0. Após minhas ações "Assemblies" -> "Framework", as opções "System.Net.Http" e "System.Net.Http" tinham a mesma versão 4.0.0.0.
fonte
Visual Studio Package Manager Console> Install-Package Microsoft.AspNet.WebApi.Client
fonte
Supondo que você esteja usando o Visual Studio 10, você pode baixar uma instalação que inclui System.Net.Http, para Visual Studio 10 aqui: baixe MVC4 para VS10
Depois de instalado, clique com o botão direito na pasta References no VS Project e selecione Add Reference . Em seguida, selecione a guia Procurar . Navegue até o caminho de instalação dos assemblies para a instalação do MVC4 (geralmente em Arquivos de programas (x86) / Microsoft ASP.NET/ASP.NET MVC4 / assemblies) e selecione o assembly denominado 'System.Net.Http.dll'. Agora você pode adicionar seu 'using System.Net.Http' na parte superior do seu código e começar a criar conexões HttpClient.
fonte
basta ir para adicionar referência e adicionar
fonte
Você precisa ter uma referência para a
System.Web.Http
montagem que tem aHTTPClient
classe, você está tentando usar. Tente adicionar a linha abaixo antes de sua declaração de classeSe você ainda receber o erro, tente fazer isso em
Visual Studio
System.Web.Http.dll
).fonte
HttpClient
pertence aoSystem.Web.Http.dll
conjunto .NET 4.5 (nãoSystem.Net
).Properties
. Você deve verReferences
no lado esquerdo.Para mim, era obter o pacote nuget Microsoft.Net.Http. ( Https://blogs.msdn.microsoft.com/bclteam/p/httpclient/ )
fonte
Você precisará de um
using System.Net.Http
no topo.fonte
HttpClient é novo no .net 4.5. Você provavelmente deve estar usando HttpWebRequest .
fonte
HttpWebRequest
, mas não sei por que eles não estão usando.Para resolver o problema:
Net framework 4.5
para terminar de carregarSystem.Net.Http
e clique em ok.Problema resolvido.
fonte
Tornar a propriedade "Copiar local" True para a referência fez isso por mim. Expanda References, clique com o botão direito em System.Net.Http e altere o valor da propriedade Copy Local para True na janela de propriedades. Estou usando o VS2019.
fonte
Certifique-se de que está referenciado no seu web.config:
fonte
Com o Nuget Package Manager, instale Microsoft.AspNet.WebApi.Core.
Depois disto:
ou se você usa VB
imports System.Web.Http
fonte
Tive esse problema depois de atualizar para o .NET Framework 4.7.2. Eu descobri que o pacote Nuget para System.Net.Http não é mais recomendado. Aqui estão as soluções alternativas:
fonte
No Visual Studio, você pode usar o nuget para carregar o pacote
fonte