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;
.NET 4.5でSystem.Net.Http.dll
を参照していることを確認してください。
投稿されたコードは、webClient
で何もしないようです。 HttpWebRequest
を使用して実際にコンパイルしているコードに何か問題がありますか?
更新
Add Referenceダイアログを開くには、Solution Explorerでプロジェクトを右クリックして、Add Referenceを選択します...。次のようになります。
NuGet> Microsoft ASP.NET Web APIクライアントライブラリ
どうやって解決したか。
私の場合、バージョン2.0.0.0で.Net 4.0と「アセンブリ」->「拡張機能」オプション「System.Net.Http」が最初にありました。私のアクション「アセンブリ」->「フレームワーク」オプションの後、「System.Net.Http」と「System.Net.Http」のバージョンは同じ4.0.0.0でした。
Visual Studioパッケージマネージャーコンソール>インストールパッケージMicrosoft.AspNet.WebApi.Client
Visual Studio 10を使用していると仮定すると、Visual Studio 10のSystem.Net.Httpを含むインストールをここからダウンロードできます: download MVC4 for VS1
インストールしたら、VSプロジェクトのReferencesフォルダーを右クリックし、Add Reference。次に、Browseタブを選択します。 assembliesMVC4インストールのインストールパス(通常はProgram Files(x86)/ Microsoft ASP.NET/ASP.NET MVC4/assemblies)に移動し、 「System.Net.Http.dll」という名前のアセンブリを選択します。これで、コードの先頭に「使用中のSystem.Net.Http」を追加し、HttpClient接続の作成を開始できます。
私にとっては、Microsoft.Net.Httpというnugetパッケージを取得していました。( https://blogs.msdn.Microsoft.com/bclteam/p/httpclient/ )
使用しようとしているHTTPClient
クラスを持つSystem.Web.Http
アセンブリへの参照が必要です。クラス宣言の前に以下の行を追加してみてください
using System.Web.Http;
それでもエラーが発生する場合は、Visual Studio
でこれを試してください。
System.Web.Http.dll
)に名前空間を含むアセンブリをダブルクリックします。上部にusing System.Net.Http
が必要です。
この問題を解決するために、
1.ソリューションエクスプローラーに移動します。 2.プロジェクト名を右クリックして、[追加]を選択します。3.参照を選択し、.Net framework 4.5の読み込みを完了させます。4.下にスクロールして[System.Net.Http]を選択し、[OK]をクリックします。問題が解決しました。
System.Net.Httpを使用してAndroidの参照に追加した後でも、エラーが発生し続け、NuggetパッケージMicrosoft.net.httpを既にインストールしていました。
IOSプロジェクトにSystem.Net.Httpを追加しなかったことが判明しましたが、追加したときに問題は解決しました。
use system.Net,
system.Net.WebRequest
同様の問題または同じ問題があり、最近修正しました。ただし、前にsystem.net.httpも追加しましたが、解決しませんでした。
HttpClient は.net 4.5の新機能です。おそらく HttpWebRequest を使用しているはずです。