web-dev-qa-db-ja.com

System.Net.Http:名前空間にありませんか? (.NET 4.5を使用)

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'に存在しません(アセンブリ参照がありませんか?)

93
NullVoxPopuli

HttpClientSystem.Net.Http 名前空間に住んでいます。

以下を追加する必要があります。

using System.Net.Http;

.NET 4.5でSystem.Net.Http.dllを参照していることを確認してください。


投稿されたコードは、webClientで何もしないようです。 HttpWebRequestを使用して実際にコンパイルしているコードに何か問題がありますか?


更新

Add Referenceダイアログを開くには、Solution Explorerでプロジェクトを右クリックして、Add Referenceを選択します...。次のようになります。

enter image description here

99
M.Babcock

NuGet> Microsoft ASP.NET Web APIクライアントライブラリ

73
user1662812

どうやって解決したか。

  1. プロジェクト(!)「プロパティ」を開き、「アプリケーション」を選択し、ターゲットフレームワーク「.Net Framework 4.5」を選択します
  2. プロジェクトを右クリック->参照を追加
  3. [アセンブリ]-> [拡張機能]オプションで[System.Net.Http]がオフになっていることを確認します
  4. [アセンブリ]-> [フレームワーク]に移動し、[System.Net.Http]および[System.Net.Http]オプションを選択します
  5. それだけです!

私の場合、バージョン2.0.0.0で.Net 4.0と「アセンブリ」->「拡張機能」オプション「System.Net.Http」が最初にありました。私のアクション「アセンブリ」->「フレームワーク」オプションの後、「System.Net.Http」と「System.Net.Http」のバージョンは同じ4.0.0.0でした。

12
LagiNatoRRR

Visual Studioパッケージマネージャーコンソール>インストールパッケージMicrosoft.AspNet.WebApi.Client

9
lance-p

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接続の作成を開始できます。

5
Ussabin

私にとっては、Microsoft.Net.Httpというnugetパッケージを取得していました。( https://blogs.msdn.Microsoft.com/bclteam/p/httpclient/

3
Elferone

使用しようとしているHTTPClientクラスを持つSystem.Web.Httpアセンブリへの参照が必要です。クラス宣言の前に以下の行を追加してみてください

using System.Web.Http;

それでもエラーが発生する場合は、Visual Studioでこれを試してください。

  1. プロジェクトのReferencesフォルダーを右クリックします。
  2. [参照の追加]を選択します。
  3. [.NET]タブを選択します(または、.NET Frameworkアセンブリでない場合は[参照]ボタンを選択します)。
  4. エラーメッセージ(System.Web.Http.dll)に名前空間を含むアセンブリをダブルクリックします。
  5. OKボタンを押します。
3
Akhil

参照を追加してから追加するだけです

system.net.http

enter image description here

3
Hussein Talib

上部にusing System.Net.Httpが必要です。

2
Keith Nicholas

この問題を解決するために、

1.ソリューションエクスプローラーに移動します。 2.プロジェクト名を右クリックして、[追加]を選択します。3.参照を選択し、.Net framework 4.5の読み込みを完了させます。4.下にスクロールして[System.Net.Http]を選択し、[OK]をクリックします。問題が解決しました。

0
boakye_wozniac

System.Net.Httpを使用してAndroidの参照に追加した後でも、エラーが発生し続け、NuggetパッケージMicrosoft.net.httpを既にインストールしていました。

IOSプロジェクトにSystem.Net.Httpを追加しなかったことが判明しましたが、追加したときに問題は解決しました。

0
Dyary
                                      use system.Net, 
                                     system.Net.WebRequest

同様の問題または同じ問題があり、最近修正しました。ただし、前にsystem.net.httpも追加しましたが、解決しませんでした。

0
krishna

HttpClient は.net 4.5の新機能です。おそらく HttpWebRequest を使用しているはずです。

0
Kibbee