有关msgSecCheck的咨询
发布于 6 年前 作者 min87 4730 次浏览 来自 问答
  • 当前 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]”}

2 回复

你好,47001的问题是格式不对,请确认是否已经把unicode转为utf-8   

(参考链接:https://www.jb51.net/article/70251.htm)

已解决,建议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();

}

回到顶部