gpt4 book ai didi

java - 如何将包含特殊字符的数据发布到 Microsoft CRM Dynamics Web API?

转载 作者:行者123 更新时间:2023-11-30 05:59:21 26 4
gpt4 key购买 nike

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

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

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

één

请求失败。

所以发送

een 

成功。

我们将“Content-Type” header 设置为“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问题。

最佳答案

感谢@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();

关于java - 如何将包含特殊字符的数据发布到 Microsoft CRM Dynamics Web API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52538888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com