【问题标题】:How to post data to Microsoft CRM Dynamics Web API that contains special characters?如何将包含特殊字符的数据发布到 Microsoft CRM Dynamics Web API?
【发布时间】:2019-03-03 11:32:17
【问题描述】:

我们在线使用 Microsoft CRM Dynamics 的 Web API REST 端点。

我们尝试使用 POST 到以下 URL 创建一个新条目 https://OUR-ORG.crm4.dynamics.com/api/data/v9.0/customentities

当数据包含普通字符时我们会成功,但只要文本属性包含这样的特殊字符

één

请求失败。

所以发送

een 

成功了。

我们将“Content-Type”标头设置为“application/json; charset=UTF-8”

---- 编程语言 --- 当我们使用 JAVA 时,它会失败。

URL crmURL = new URL(fullOdataURL);
HttpsURLConnection con = (HttpsURLConnection) crmURL.openConnection();

con.setRequestMethod("POST");

con.setRequestProperty("Accept", "application/json");
con.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
con.setRequestProperty("Authorization", "Bearer " + accesstoken);
con.setRequestProperty("OData-MaxVersion", "4.0");
con.setRequestProperty("OData-Version", "4.0");

con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(baaslogentryJSON.toString());
wr.flush();
wr.close();

当我们使用 Postman 重放请求时,请求被接受。

所以这变成了一个 JAVA 问题。

【问题讨论】:

  • Unicode 中没有特殊字符。 .NET 和 Windows 在内部使用 Unicode,因此它们是否可以处理 UTF8 是毫无疑问的。请发布您的代码,您使用的查询,实际错误。您没有提供任何相关信息,甚至没有提供您使用的语言
  • 将内容类型设置为application/json; charset=UTF-8 如果您的代码 发送编码为ASCII 的数据并破坏非ANSI 字符,将无济于事。使用 Fiddler 或其他调试代理检查实际发送到 HTTP 服务的内容。我怀疑您会看到请求正文已被破坏

标签: java utf-8 odata dynamics-crm


【解决方案1】:

感谢@pangiotis kanavos,我仔细查看了 java 代码。 当然,事实证明,JAVA 问题在这里已经有了答案: Java UTF-8 encoding not working HttpURLConnection

下面的代码对我有用(它在这里保留了注释行,以显示与问题中代码的区别)

con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(wr, "UTF-8"));
writer.write(baaslogentryJSON.toString());
writer.close();
//wr.writeBytes(baaslogentryJSON.toString());
wr.flush();
wr.close();

【讨论】:

    猜你喜欢
    • 2022-10-18
    • 1970-01-01
    • 2017-03-15
    • 2019-07-19
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 2020-12-25
    • 2018-01-03
    相关资源
    最近更新 更多