2016-10-19 8 views
0

アプリケーションでbible APIを使用しようとしています。ここで私は次のCURL呼び出しをC#に変換するには

curl -L -u #{API Token}:X -k https://bibles.org/v2/verses/eng-GNTD:Acts.8.34.xml 
  • -Lオプションを確認する必要があり、次のカールコールがリダイレクトに従うことはcURLに指示しています。
  • HTTP基本認証でユーザー名とパスワードを指定する-uオプション。 APIトークンはユーザー名として与えられます。パスワードはサーバによって無視された なので、必要なものを置くことができます。私たちの場合 "X"
  • -kオプションは、SSL証明書を検証しないようにcURLに指示するために使用されます。

は今のドキュメントは、私は次のようにC#でこれを変更しようとしている

<?php 
$token = '#{API Token}'; 
$url = 'https://bibles.org/v2/verses/eng-GNTD:Acts.8.34.xml'; 

// Set up cURL 
$ch = curl_init(); 
// Set the URL 
curl_setopt($ch, CURLOPT_URL, $url); 
// don't verify SSL certificate 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
// Return the contents of the response as a string 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
// Follow redirects 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
// Set up authentication 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_USERPWD, "$token:X"); 

// Do the request 
$response = curl_exec($ch); 
curl_close($ch); 

print($response); 
?> 

以下の通りです。このAPIを使用するために私たちにPHPコードを示します。しかし、私は401(Unauthorizedコード)を取得します。何が間違っているのですか?

string apiToken = "#{myAPIToken}"; 

string url = "https://bibles.org/v2/verses/eng-GNTD:Acts.8.34.xml"; 
WebRequest myReq = WebRequest.Create(url); 
CredentialCache mycache = new CredentialCache(); 
myReq.Headers["Authorization"] = Convert.ToBase64String(Encoding.ASCII.GetBytes(apiToken + ":X")); 
WebResponse wr = myReq.GetResponse(); 
Stream receiveStream = wr.GetResponseStream(); 
StreamReader reader = new StreamReader(receiveStream, Encoding.UTF8); 
string content = reader.ReadToEnd(); 

答えて

0

私はあなたが認証ヘッダーのBasic部分を見逃していると思います。

myReq.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(apiToken + ":X")); 
:これは私がそれを行うだろうかあなたの例では、.NET 4.6

var client = new HttpClient() 
var auth = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{accountSid}:{token}")); 

client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", auth); 

はこれを試しています

関連する問題