You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写ASP.NET程序调用牛津词典API时,如何添加请求头?

解决ASP.NET中调用牛津词典API添加请求头的问题

先帮你梳理代码里的几个小问题,再给出完整的正确实现:

1. 变量声明的位置错误

你把PrimeUrl和uri标记成public static后放在了Page_Load方法内部,这在C#里是不允许的——静态变量得放在类级别(方法外面)。

2. 请求头的拼写错误

代码里的app_ke明显是漏写了最后一个字母,应该是app_key,这个拼写错误会直接导致API验证失败,一定要修正。

3. 修正后的完整代码

我还补充了响应读取和异常处理的逻辑,方便你直接获取API返回的结果:

public partial class YourPage : System.Web.UI.Page
{
    // 把静态变量移到类级别,更符合C#语法规范
    private static string PrimeUrl = "https://od-api.oxforddictionaries.com:443/api/v1/entries/en/";

    protected void Page_Load(object sender, EventArgs e)
    {
        HttpWebRequest req = null;
        string uri = PrimeUrl + "robot";
        
        try
        {
            req = (HttpWebRequest)WebRequest.Create(uri);
            
            // 添加牛津API要求的身份验证请求头
            req.Headers.Add("app_id", "72536848");
            req.Headers.Add("app_key", "你的真实app密钥"); // 替换成你自己的密钥
            
            // 显式指定请求方法(GET是默认值,这里写出来更清晰)
            req.Method = "GET";
            
            // 读取API返回的响应内容
            using (HttpWebResponse response = (HttpWebResponse)req.GetResponse())
            {
                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                {
                    string responseContent = reader.ReadToEnd();
                    // 这里可以把responseContent反序列化成对象,或者直接输出查看结果
                    Response.Write(responseContent);
                }
            }
        }
        catch (WebException ex)
        {
            // 处理请求异常,比如API返回的错误信息
            using (HttpWebResponse errorResponse = (HttpWebResponse)ex.Response)
            {
                using (StreamReader reader = new StreamReader(errorResponse.GetResponseStream()))
                {
                    string errorMsg = reader.ReadToEnd();
                    Response.Write("请求出错:" + errorMsg);
                }
            }
        }
    }
}

额外小提示

  • 不要把app_key硬编码在代码里,建议存在Web.config的<appSettings>节点中,用ConfigurationManager.AppSettings["OxfordAppKey"]读取,更安全。
  • 如果后续调用POST类型的接口,记得设置req.ContentType = "application/json";并写入请求体内容。

内容的提问来源于stack exchange,提问作者iamal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:19:36