- 当前 Bug 的表现(可附上截图)
调用msgSecCheck时,若前台直接以AJAX调用,可以正常返回,但是https://api.weixin.qq.com无法加入合法request域名,若使用curl -d的方式进行查询,一直报错{“errcode”:47001,“errmsg”:"data format error hint,若使用C#后台调webservice方法,则提示posts data empty之类错误,请问对于curl -d的JSON数据正确格式应为什么样子,是否可以确认什么版本的curl可以正常工作,我使用的是7.60.0,谢谢回答。
- 预期表现
应可以正常返回检查结果
- 复现路径
- 提供一个最简复现 Demo
curl -d ‘{“content”:“123”}’ https://api.weixin.qq.com/wxa/msg_sec_check?access_token=11_A_tGm9J8k-7MUCQpHMfWUxNhvL2pmlTrbniMZ0CJpmV3otveCC6cw7_eG73227UIyvwdmmuoIIYz9bt4D5zvupJyIMmtVWGkkvWIlTnxJetGb7240_w6xa8nm__………………
{“errcode”:47001,“errmsg”:“data format error hint: [80lvsa01939041]”}
已解决,建议c#后台编写post json to webservice的方法避免直接调用curl,坑很多。
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://url");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())){
string json = "{\"user\":\"test\"," + "\"password\":\"bla\"}"; streamWriter.Write(json); streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream())){
var result = streamReader.ReadToEnd();
}