* 文件上传到微信服务器
* @param fileType 文件类型
* @param filePath 文件路径
* @return JSONObject
* @throws Exception
*/
public static JSONObject send(String fileType, String filePath) throws Exception {
String result = null
File file = new File(filePath)
if (!file.exists() || !file.isFile()) {
throw new IOException("文件不存在")
}
/**
* 第一部分
*/
URL urlObj = new URL("http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token="+ getAccess_token() + "&type="+fileType+"")
HttpURLConnection con = (HttpURLConnection) urlObj.openConnection()
con.setRequestMethod("POST") // 以Post方式提交表单,默认get方式
con.setDoInput(true)
con.setDoOutput(true)
con.setUseCaches(false) // post方式不能使用缓存
// 设置请求头信息
con.setRequestProperty("Connection", "Keep-Alive")
con.setRequestProperty("Charset", "UTF-8")
// 设置边界
String BOUNDARY = "----------" + System.currentTimeMillis()
con.setRequestProperty("Content-Type", "multipart/form-data boundary="+ BOUNDARY)
// 请求正文信息
// 第一部分:
StringBuilder sb = new StringBuilder()
sb.append("--") // 必须多两道线
sb.append(BOUNDARY)
sb.append("\r\n")
sb.append("Content-Disposition: form-dataname=\"file\"filename=\""+ file.getName() + "\"\r\n")
sb.append("Content-Type:application/octet-stream\r\n\r\n")
byte[] head = sb.toString().getBytes("utf-8")
// 获得输出流
OutputStream out = new DataOutputStream(con.getOutputStream())
// 输出表头
out.write(head)
// 文件正文部分
// 把文件已流文件的方式 推入到url中
DataInputStream in = new DataInputStream(new FileInputStream(file))
int bytes = 0
byte[] bufferOut = new byte[1024]
while ((bytes = in.read(bufferOut)) != -1) {
out.write(bufferOut, 0, bytes)
}
in.close()
// 结尾部分
byte[] foot = ("\r\n--" + BOUNDARY + "--\r\n").getBytes("utf-8")// 定义最后数据分隔线
out.write(foot)
out.flush()
out.close()
StringBuffer buffer = new StringBuffer()
BufferedReader reader = null
try {
// 定义BufferedReader输入流来读取URL的响应
reader = new BufferedReader(new InputStreamReader(con.getInputStream()))
String line = null
while ((line = reader.readLine()) != null) {
//System.out.println(line)
buffer.append(line)
}
if(result==null){
result = buffer.toString()
}
} catch (IOException e) {
System.out.println("发送POST请求出现异常!" + e)
e.printStackTrace()
throw new IOException("数据读取异常")
} finally {
if(reader!=null){
reader.close()
}
}
JSONObject jsonObj =new JSONObject(result)
return jsonObj
}
js幻灯片专题导读:微信公众平台是腾讯公司在微信的基础上新增的功能模块,通过这一平台,个人和企业都可以打造一个微信的公众号,并实现和特定群体的文字、图片、语音的全方位沟通、互动。2013年8月5日,微信公众平台进行升级,将微信公众平台分成订阅号和服务号两种类型。本专题收集各种微信API接口开发教程,以您供参考学习。
微信调整公众平台规则:月度推送增至4条
微信团队对于公众账号的功能发展有三个阶段的定位。第一阶段就是互动沟通,最常用的就是群发消息等。第二阶段是用户管理,公众号天生是一个CRM平台。第三阶段则是服务...
发布时间:2014-04-16
微信新平台:开放图像识别和语音识别技术
利用语音识别技术,微信服务号的用户能够自定义词库,在识别到某些关键词后,自动返回特定的结果,微信称“后期也会考虑支持定制化的服务”。另外,微信开放的语音合...
发布时间:2014-04-10
微信支付向16类APP开放 拥有移动应用APP的商户即可申请
微信支付作为微信5 0版本上线时引入的一个重要功能,在3月4日已经向开发者们开放了扫码支付和公众号支付两个场景。此次,微信向第三方移动应用直接开放了微信支付申...
发布时间:2014-03-22
基于微信平台开发的十大火爆应用TOP10
如何从这个生态上赚到钱,同时又能找到避免被腾讯“微创新”的方法是无数创业者努力的方向。接下来为大家分析盘点十大基于微信开发的火爆应用,让我们一起看看这批创...
发布时间:2014-03-05
微信公众平台上传下载多媒体文件之开发文档详解
微信公众号在使用接口时,对多媒体文件、多媒体消息的获取和调用等 *** 作,是通过media_id来进行的。通过本接口,公众号可以上传或下载多媒体文件。但请注意,每个多媒...
发布时间:2014-02-09
微信公众平台客服接口之开发文档详解
当用户主动发消息给公众号的时候(包括发送信息、点击自定义菜单click事件、订阅事件、扫描二维码事件、支付成功事件、用户维权),微信将会把消息数据推送给开发者,...
发布时间:2014-02-09
微信公众平台生成带参数的二维码之开发文档详解
为了满足用户渠道推广分析的需要,微信公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。
发布时间:2014-02-09
微信公众平台获取用户地理位置之开发文档详解
开通了上报地理位置接口的微信公众号,用户在关注后进入公众号会话时,会d框让用户确认是否允许公众号使用其地理位置。d框只在关注后出现一次,用户以后可以在公众...
发布时间:2014-02-09
微信公众平台获取用户基本信息之开发文档详解
在关注者与公众号产生消息交互后,微信公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同...
发布时间:2014-02-09
微信公众平台获取关注者列表之开发文档详解
微信公众号可通过本接口来获取帐号的关注者列表,关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的)组成。一次拉取调用最多拉取10000...
发布时间:2014-02-09
微信公众平台用户分组管理开发文档详解
微信开发者可以使用接口,对公众平台的分组进行查询、创建、修改 *** 作,也可以使用接口在需要时移动用户到某个分组。一个公众账号,最多支持创建500个分组。
发布时间:2014-02-09
微信公众平台自定义菜单开发文档详解
目前微信自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“ ”代替。请注意...
发布时间:2014-02-09
微信公众平台自定义菜单创建的Java代码示例
微信公众平台自定义菜单创建的Java代码示例,完整最新版代码,支持创建,查询,删除。自定义菜单只有服务号可以申请,订阅号暂时无法申请(继续观望微信的开放政策)...
发布时间:2013-10-04
微信服务号申请自定义菜单的介绍
微信今日发布新版,此次除上线游戏中心功能外,对公众账号来说,也有巨大改变。公众账号分为订阅号和服务号,其中订阅号消息被折叠。
发布时间:2013-10-04
微信公众号自定义菜单申请与使用问题解答
有不少人询问自定义菜单的问题,所以还是写出来比较好,也可以与之前的教程连贯起来。这次我还归纳了大家对自定义菜单问得最多的一些问题,希望能让大家对自定义菜单...
发布时间:2013-09-30
微信公众平台群发消息的图文攻略
微信的公众账号平台具备了自动回复、开发平台和认证等功能。其中的一些 *** 作大
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)