2017-05-23 14 views
1

whoisデータをドラッグダウンするためにjsonwhoisapi.comに接続しようとしていますが、運がないとしています。誰かがこれをやったことがありますか? HTTPヘッダーを使用してAPI接続を行ったことはありません。apiを使用してjsonwhoisapi.comからwhoisデータを取得するC#

私は基本的にこれが明らかに機能していたポストオンラインからこれをコピーしましたが、次のものはGetResponseStreamで死にます。

public static void WebRequest() 
    { 
     string WEBSERVICE_URL = "https://jsonwhoisapi.com/api/v1/whois?identifier=google.com"; 
     try 
     { 
      var webRequest = System.Net.WebRequest.Create(WEBSERVICE_URL); 
      if (webRequest != null) 
      { 
       webRequest.Method = "GET"; 
       webRequest.Timeout = 20000; 
       webRequest.ContentType = "application/json"; 
       webRequest.Headers.Add("userid:apikey"); 
       using (System.IO.Stream s = webRequest.GetResponse().GetResponseStream()) 
       { 
        using (System.IO.StreamReader sr = new System.IO.StreamReader(s)) 
        { 
         var jsonResponse = sr.ReadToEnd(); 
         Console.WriteLine(String.Format("Response: {0}", jsonResponse)); 
        } 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.ToString()); 
     } 
    } 
+0

ああ、ここでうまくフォーマットされませんでした。うーん、奇妙な。 – Milnelli

+0

コードの最初の行の前にスペースを4つ追加して、適切に書式を設定する必要があります。編集は少なくとも6文字でなければならないと言って以来、私はそれをすることができません。また、例外を含めてください。 – Wep0n

+0

次の行で終了し、エラーを出さずにcatchにジャンプします。 using(System.IO.Stream s = webRequest.GetResponse()。GetResponseStream()) – Milnelli

答えて

0

「apikey」をApiKey文字列に、userIdをCustomerId文字列に置き換える必要があります。

直接引用:すべてのでは

は、あなたが送信する必要があります要求:認証するために、[顧客ID APIキー]のペアを - あなたのアカウントにログインしたときに、両方の情報を見つけることができます。

チャンスはあなたがここでの手順を使用して認証要求をエンコードする必要がある場合があります:https://en.wikipedia.org/wiki/Basic_access_authentication#Protocol

クライアント側:ユーザエージェントがサーバ認証にそれが使用すること 資格情報を送信したい

承認フィールド。

  1. ユーザ名とパスワードは1つのコロンと組み合わされて、次のよう

    Authorizationフィールドが構築されます。 (:)

  2. 結果の文字列は、オクテットシーケンスにエンコードされます。
  3. 結果の文字列は、Base64の亜種を使用してエンコードされます。
  4. 許可メソッドとスペースがエンコードされた文字列の先頭にスペースで区切られます(例: "Basic")。ブラウザは、ユーザー名やパスワードなどの OpenSesameとしてアラジンを使用している場合

はたとえば、そのフィールドの値は、アラジンの base64でエンコードされ:OpenSesame、またはQWxhZGRpbjpPcGVuU2VzYW1l。

許可:基本QWxhZGRpbjpPcGVuU2VzYW1l

例えば そしてAuthorizationヘッダは、として表示され次のようなものがあります。

+0

"私は幸運にも以下のことを試してみました。はい、ここに置いたプレースホルダーのデータではなく、私が送ったデータが入っています:webRequest.Headers.Add(" user "、" 12345:apikey "); webRequest.Headers.Add(" 12345:apikey ");" – Milnelli

+0

ウェブサイト上の指示は不明ですが、リクエストヘッダーを送信する前にエンコードする必要があるように見えます。 – Kris

+1

基本認証であれば、まずConvert.ToBase64String(Encoding.ASCII.GetBytes( "userid:apikey")) ' – ColinM

関連する問題