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

为何使用Flurl请求lyricsify.com会得到空响应?需如何配置?

问题原因与解决方案
  • 核心原因:lyricsify.com会校验请求的User-Agent请求头,Flurl默认的用户代理标识会被网站判定为非合法客户端,因此返回空响应体(状态码200是因为服务器正常接收了请求,只是拒绝返回有效内容)。

  • 解决方案:给Flurl请求添加符合浏览器规范的User-Agent头,同时补充Accept头模拟真实浏览器的请求行为。

修改后的测试代码如下:

[Fact]
public async void FlurlTest()
{
    string googleResponse = await "https://www.google.com".GetStringAsync();
    Debug.WriteLine($"googleResponse: {googleResponse}");
    Assert.NotEmpty(googleResponse);
    
    string lyricsifyResponse = await "https://www.lyricsify.com"
        .WithHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
        .WithHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
        .GetStringAsync();
    Debug.WriteLine($"lyricsifyResponse: {lyricsifyResponse}");
    Assert.NotEmpty(lyricsifyResponse);
}

如果需要全局配置,避免每个请求重复设置请求头,可以通过Flurl的全局配置实现:

FlurlHttp.Configure(settings =>
{
    settings.HttpClientFactory = new DefaultHttpClientFactory(() =>
    {
        var client = new HttpClient(new HttpClientHandler());
        client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36");
        client.DefaultRequestHeaders.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
        return client;
    });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 11:47:20