gpt4 book ai didi

c# - 将 HttpWebRequest 凭证传递给 Oxford API

转载 作者:行者123 更新时间:2023-11-30 15:19:28 25 4
gpt4 key购买 nike

我正在尝试连接到 Oxford Dictionaries API .当我将 python 与此代码一起使用时,我没有遇到任何问题:

import requests
import json
app_id = 'my id'
app_key = 'my key'
language = 'en'
word_id = 'Ace'
url = 'https://od-api.oxforddictionaries.com:443/api/v1/entries/' + language + '/' + word_id.lower()
r = requests.get(url, headers = {'app_id': app_id, 'app_key': app_key})
print("code {}\n".format(r.status_code))

但是在 c# 中,我收到错误 403 Authentication failed using the following code:

        HttpWebRequest req = null;
string PrimeUrl = "https://od-api.oxforddictionaries.com:443/api/v1/entries/en/"
string uri = PrimeUrl+word ;
req = (HttpWebRequest)HttpWebRequest.Create(uri);
string credentials = String.Format("{0}:{1}", uid, pwd);
byte[] bytes = Encoding.ASCII.GetBytes(credentials);
string base64 = Convert.ToBase64String(bytes);
string authorization = String.Concat("Basic ", base64);
req.Headers.Add("Authorization", authorization);
req.Method = WebRequestMethods.Http.Get;
req.Accept = "application/json";
HttpWebResponse HWR_Response = (HttpWebResponse)req.GetResponse();

我仔细检查了 id 和 key 是否正确,也尝试了所有建议 here .

发布这个问题是我最后的选择。谢谢。

最佳答案

这是将您的开发人员凭据正确添加到请求的方法 - 它们是 header :

using System;
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;

namespace OxfDictionary
{
class Program
{
static void Main(string[] args)
{
HttpWebRequest req = null;

string PrimeUrl = "https://od-api.oxforddictionaries.com:443/api/v1/entries/en/";
string uri = PrimeUrl + "robot";
req = (HttpWebRequest)HttpWebRequest.Create(uri);

//These are not network credentials, just custom headers
req.Headers.Add("app_id", "5a......3");
req.Headers.Add("app_key", "d12............1a0");

req.Method = WebRequestMethods.Http.Get;
req.Accept = "application/json";

using (HttpWebResponse HWR_Response = (HttpWebResponse)req.GetResponse())
using (Stream respStream = HWR_Response.GetResponseStream())
using (StreamReader sr = new StreamReader(respStream, Encoding.UTF8))
{
string theJson = sr.ReadToEnd();
Debug.WriteLine(theJson);
Console.WriteLine(theJson);
}
Console.ReadKey();
}
}
}

结果是:

 {
"metadata": {
"provider": "Oxford University Press"
},
"results": [
{
"id": "robot",
"language": "en",
"lexicalEntries": [
{
"entries": [
{
"etymologies": [
"from Czech, from robota forced labour. The term was coined in K. Čapek's play R.U.R. Rossum's Universal Robots (1920)"
],
"grammaticalFeatures": [
{
"text": "Singular",
"type": "Number"
}
],
"senses": [
{
"definitions": [
"a machine capable of carrying out a complex series of actions automatically, especially one programmable by a computer:"
],
"domains": [
"Electronics"
],
"examples": [
{
"text": "a robot arm"
},
{
"text": "half of all American robots are making cars or trucks"
}
],
"id": "m_en_gb0714510.001",
"subsenses": [
{
"definitions": [
"(especially in science fiction) a machine resembling a human being and able to replicate certain human movements and functions automatically:"
],
"examples": [
{
"text": "the robot closed the door behind us"
}
],
"id": "m_en_gb0714510.002"
},
{
"definitions": [
"a person who behaves in a mechanical or unemotional manner:"
],
"examples": [
{
"text": "public servants are not expected to be mindless robots"
}
],
"id": "m_en_gb0714510.003"
}
]
},
{
"crossReferenceMarkers": [
"another term for crawler (in the computing sense)"
],
"crossReferences": [
{
"id": "crawler",
"text": "crawler",
"type": "see also"
}
],
"domains": [
"Computing"
],
"id": "m_en_gb0714510.004"
},
{
"definitions": [
"a set of automatic traffic lights:"
],
"domains": [
"Motoring"
],
"examples": [
{
"text": "waiting at a robot I caught the eye of a young woman"
}
],
"id": "m_en_gb0714510.005",
"regions": [
"South African"
]
}
]
}
],
"language": "en",
"lexicalCategory": "Noun",
"pronunciations": [
{
"audioFile": "http://audio.oxforddictionaries.com/en/mp3/robot_gb_1.mp3",
"dialects": [
"British English"
],
"phoneticNotation": "IPA",
"phoneticSpelling": "ˈrəʊbɒt"
}
],
"text": "robot"
}
],
"type": "headword",
"word": "robot"
}
]
}

关于c# - 将 HttpWebRequest 凭证传递给 Oxford API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42040044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com