热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何使用包含土耳其语字符的HttpClient查询

我正在使用C#开发Web服务。客户端工作正常,但是如果参数包含土耳其语字符,则结果

我正在使用C#开发Web服务。客户端工作正常,但是如果参数包含土耳其语字符,则结果为null。
我知道这是一个编码问题,但我不知道如何设置。

我为HttpClient尝试了以下操作:

httpClient.DefaultRequestHeaders.acceptCharset.Add(new StringWithQualityHeaderValue("utf-8"));
httpClient.DefaultRequestHeaders.acceptEncoding.Add(new StringWithQualityHeaderValue("windows-1254"));
httpClient.DefaultRequestHeaders.acceptLanguage.Add(new StringWithQualityHeaderValue("tr-TR"));

但是没有用。我以为也许我在参数中编码土耳其语字符,反过来又尝试了:

HttpUtility.UrlEncode(district);
Uri.EscapeUriString(district);
Uri.EscapeDataString(district);

,但此操作不再起作用。我的代码块如下:

private HttpClient getclient() {
HttpClient httpClient = new HttpClient();
httpClient.BaseAddress = new Uri(Configurationmanager.AppSettings["ServiceBaseUrl"]);
httpClient.DefaultRequestHeaders.accept.Clear();
httpClient.DefaultRequestHeaders.accept.Add(new MediaTypeWithQualityHeaderValue("text/xml"));
httpClient.DefaultRequestHeaders.acceptEncoding.Add(new StringWithQualityHeaderValue("windows-1254"));
return httpClient;
}
public SupportPersonDto GetSupportPersonList(string city,string district) {
SupportPersonDto serviceResult = null;
string param = "" +
"" + Configurationmanager.AppSettings["serviceUser"] + "" +
"" + Configurationmanager.AppSettings["servicePass"] + "" +
"" + city + "" +
"" + district + "" +
"";
HttpClient httpClient = getclient();
string apiUrl = "?xmlData=" + param;
HttpResponseMessage respOnse= httpClient.Getasync(apiUrl).Result;
if (response.IsSuccessStatusCode) {
var stream = response.Content.ReadAsStreamAsync();
stream.Wait();
XmlRootAttribute xRoot = new XmlRootAttribute();
xRoot.ElementName = "NGDIRECTORY";
xRoot.Isnullable = true;
XmlSerializer serializer = new XmlSerializer(typeof(SupportPersonDto),xRoot);
serviceResult = (SupportPersonDto)serializer.Deserialize(stream.Result);
}
httpClient.Dispose();
return serviceResult;
}

有人可以帮我吗?



非常感谢所有帮助过的人。
Daniel和Lasse都建议我使用UrlEncode,这是正确的答案。
解决了如下问题,可以编辑代码:

pq.write_table(pa.Table.from_dataframe(pandas.DataFrame))

这么多天后:)

再次感谢您的帮助


推荐阅读
  • 本文探讨了在使用 ClickOnce 部署方式时遇到的自动更新失败问题,包括本地安装与服务器安装的不同表现,并提供了详细的解决方案。 ... [详细]
  • 提升接口测试效率的关键:用例与工具的综合应用
    本文将探讨如何通过有效的接口测试用例设计和工具选择,显著提高接口测试的效率和质量。 ... [详细]
  • C#爬虫Fiddler插件开发自动生成代码
    哈喽^_^一般我们在编写网页爬虫的时候经常会使用到Fiddler这个工具来分析http包,而且通常并不是分析一个包就够了的,所以为了把更多的时间放在分析http包上,自动化生成 ... [详细]
  • 本文探讨了在使用Apache Flink向Kafka发送数据过程中遇到的事务频繁失败问题,并提供了详细的解决方案,包括必要的配置调整和最佳实践。 ... [详细]
  • 解决JavaWeb项目中因IPv6导致的IP转换错误
    本文探讨了在JavaWeb项目中,当尝试将客户端IP地址从字符串形式转换为整数时遇到的问题,并提供了详细的解决方案。具体问题表现为在本地环境中通过`request.getRemoteHost()`获取到的IP地址为IPv6格式,而非预期的IPv4格式。 ... [详细]
  • 本文探讨了在使用Apache HttpClient 4.x(作为commons-httpclient 3.x的后续版本)时,如何配置默认的HttpContext,以确保每次执行请求时无需显式传递上下文。 ... [详细]
  • 前端技术分享——利用Canvas绘制鼠标轨迹
    作为一名前端开发者,我已经积累了Vue、React、正则表达式、算法以及小程序等方面的技能,但Canvas一直是我的盲区。因此,我在2018年为自己设定了一个新的学习目标:掌握Canvas,特别是如何使用它来创建CSS3难以实现的动态效果。 ... [详细]
  • Linux环境下的PHP7安装与配置指南
    本文详细介绍了如何在Linux操作系统中安装和配置PHP7,包括检查当前PHP版本、升级PHP以及配置MySQL支持等步骤,适合后端开发者参考。 ... [详细]
  • 理解HTTP状态码及其应用
    本文详细解析了HTTP状态码的分类及常见代码的意义,帮助开发者和用户更好地理解和解决网络请求中遇到的问题。 ... [详细]
  • PHP网站部署指南:从零开始搭建PHP网站
    本文提供了详细的步骤指导,帮助开发者在不同环境下成功部署PHP网站,包括在IIS和Apache服务器上的具体操作。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • 本文详细介绍了在Mac操作系统中使用Python连接MySQL数据库的方法,包括常见的错误处理及解决方案。 ... [详细]
  • 解决宝塔面板Nginx反向代理缓存问题
    本文介绍如何在宝塔控制面板中通过编辑Nginx配置文件来解决反向代理中的缓存问题,确保每次请求都能从服务器获取最新的数据。 ... [详细]
  • Kubernetes 实践指南:初次体验
    本文介绍了如何通过官方提供的简易示例,快速上手 Kubernetes (K8S),并深入理解其核心概念和操作流程。 ... [详细]
  • 深入解析Nacos服务自动注册机制
    本文将探讨Nacos服务自动注册的具体实现方法,特别是如何通过Spring事件机制完成服务注册。通过对Nacos源码的详细分析,帮助读者理解其背后的原理。 ... [详细]
author-avatar
浅浅的思恋的小媳妇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有