现在发文本信息没问题,但发附件由于从客户端上传老是报错,所以无法实现,我们公司现在是cs架构,所以我最开始用的ls
murl = "https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=" + token + "&type=file"
Set h = CreateObject("MSXML2.XMLHTTP")
Call h.Open ("POST" , murl , False)
Call h.setRequestHeader ("Content-type:", "multipart/form-data;charset=UTF-8")
Dim rtitem As Variant
Set rtitem = doc.getfirstitem("附件")
Forall obj In rtitem.EmbeddedObjects
Call h.Send(obj.Object)
End Forall
现在返回值就是media data missing,所以我send到底应该send什么呢?因为按我的理解不就是把那个object发送过去吗?
然后我还用了java,也就是网上大家互相传播的那个
String last_wechat_url = "https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=&type=file";
File file = new File("D:\123.txt");
URL url = new URL(last_wechat_url);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 定义数据分割符
String boundary = "----------sunlight";
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
//conn.setConnectTimeout(6*1000);
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
conn.setRequestProperty("Charsert", "UTF-8");
conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
OutputStream out = new DataOutputStream(conn.getOutputStream());
byte[] end_data = ("rn--" + boundary + "--rn").getBytes();// 定义最后数据分隔线
StringBuilder sb = new StringBuilder();
sb.append("--" + boundary + "rn");
sb.append("Content-Disposition: form-data;name="media";filename="" + file.getName() + ""rn");
sb.append("Content-Type:application/octet-streamrnrn");
到了OutputStream out = new DataOutputStream(conn.getOutputStream());这一步就报错。。。接下来我就不知道了。。。
或者还有什么方法能实现上传附件吗?。。。CS架构下。。。。
收起