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

C#调用HTTPS服务器报错:输入字符串格式不正确,求排查方案

问题排查:HttpClient.GetAsync抛出“Input string was not in a correct format”错误

你的代码:

ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(url);
string result = await response.Content.ReadAsStringAsync();

可能的原因及排查方向:

  • URL字符串未正确转义:浏览器会自动转义URL中的特殊字符(如空格、中文、#、@等),但HttpClient不会。如果url变量包含这类未转义的字符,会触发格式错误。
  • URL拼接/生成逻辑错误:如果url是通过字符串拼接生成的,可能混入了null值、格式异常的变量(比如数字转字符串时出错),导致最终URL格式非法。
  • 系统代理配置问题:浏览器可能使用了自动代理或自定义代理,而HttpClient默认读取系统代理配置。如果系统代理的地址格式错误,会在请求时触发解析异常。
  • 隐式的TLS/证书格式问题:虽然设置了Tls12,但目标站点的证书链异常,或本地证书存储中的证书格式错误,可能间接触发格式解析类错误。
  • HttpClient全局配置异常:如果项目中对HttpClient做了全局自定义配置(比如自定义HttpMessageHandler),其中的请求头、参数格式错误也可能导致该问题。

排查建议:

  • 打印url变量的实际值,检查是否有特殊字符,用Uri.EscapeUriString(url)转义后再传入请求。
  • 替换url为浏览器能访问的硬编码完整URL,测试是否能正常请求,排除变量生成的问题。
  • 禁用代理测试:
    var handler = new HttpClientHandler { UseProxy = false };
    var client = new HttpClient(handler);
    
  • 检查URL生成逻辑,确保所有拼接的变量都是合法的非空字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 18:05:17