把拍摄的照片做成图册以什么是文档形式式发送给微信好友

17:56 提问
微信公众号上传多媒体文件接口用JAVA怎么实现
根据图片的描述是通过发送https请求上传图片。微信公众号提供的文档是通过curl命令来实现发送https post请求,但是我现在的程序是通过java程序来发送https post请求。以下是我的3个问题:
1、既然是发送https post请求上传图片,java应该也可以实现,我只实现过java https post的简单请求,没有实现过java https post图片上传。有大神能帮帮我吗?
2、既然微信公众号文档上说是通过curl来发送请求,那java是否提供模拟curl来发送https post请求来实现图片上传。如果java提供,有大神能帮帮我吗?
3、或者有没有谁实现过微信公众号以上截图描述的用java实现的多媒体文件上传功能,有实现过的话,共享以下代码啊!本人感激不尽!。
求大神帮帮忙!
按赞数排序
这个类,刚忘了一个方法httpsRequestToString,补充如下:
* 发送请求以https方式发送请求并将请求响应内容以String方式返回
* @param path
* @param method 请求方法
* @param body
请求数据体
* @return 请求响应内容转换成字符串信息
public static String httpsRequestToString(String path, String method, String body) {
if(path==null||method==null){
String response =
InputStream inputStream =
InputStreamReader inputStreamReader =
BufferedReader bufferedReader =
HttpsURLConnection conn =
TrustManager[] tm = { new JEEWeiXinX509TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());
SSLSocketFactory ssf = sslContext.getSocketFactory();
System.out.println(path);
URL url = new URL(path);
conn = (HttpsURLConnection) url.openConnection();
conn.setSSLSocketFactory(ssf);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestMethod(method);
if (null != body) {
OutputStream outputStream = conn.getOutputStream();
outputStream.write(body.getBytes("UTF-8"));
outputStream.close();
inputStream = conn.getInputStream();
inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
bufferedReader = new BufferedReader(inputStreamReader);
String str =
StringBuffer buffer = new StringBuffer();
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
response = buffer.toString();
} catch (Exception e) {
logger.error(e);
if(conn!=null){
conn.disconnect();
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
} catch (IOException execption) {
logger.error(execption);
此外,还有一个证书实现类,发送https请求用的,也要定义的。
class JEEWeiXinX509TrustManager implements X509TrustManager {
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
public X509Certificate[] getAcceptedIssuers() {
可以的。这个接口岁说是https的,但是用http仍然能上传资源的。我以前开发公众号的时候文档还是http协议上传的。今天试了,还是可以的。
我给你上传、下载的例子。你修改appId和appSecret测试上传下载图片文件看看。上传文件使用HttpClient类完成,需要net.sf.json和httpclient的jar。
API实现类代码如下,你修改上传文件路径和开发者账户直接运行试试。祝好!
public class WeChatApiUtil {
// token 接口(GET)
private static final String ACCESS_TOKEN = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s";
// 素材上传(POST)
private static final String UPLOAD_MEDIA = "http://file.api.weixin.qq.com/cgi-bin/media/upload";
// 素材下载:不支持视频文件的下载(GET)
private static final String DOWNLOAD_MEDIA = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=%s&media_id=%s";
public static String getTokenUrl(String appId, String appSecret) {
return String.format(ACCESS_TOKEN, appId, appSecret);
public static String getDownloadUrl(String token, String mediaId) {
return String.format(DOWNLOAD_MEDIA, token, mediaId);
* 通用接口获取Token凭证
* @param appId
* @param appSecret
public static String getToken(String appId, String appSecret) {
if(appId==null||appSecret==null){
String token =
String tockenUrl = WeChatApiUtil.getTokenUrl(appId, appSecret);
String response = httpsRequestToString(tockenUrl, "GET", null);
JSONObject jsonObject = JSONObject.fromObject(response);
if (null != jsonObject) {
token =jsonObject.getString("access_token");
} catch (JSONException e) {
token =// 获取token失败
logger.error(e);
* 微信服务器素材上传
* @param file
表单名称media
* @param token access_token
* @param type
type只支持四种类型素材(video/image/voice/thumb)
public static JSONObject uploadMedia(File file, String token, String type) {
if(file==null||token==null||type==null){
if(!file.exists()){
logger.info("上传文件不存在,请检查!");
String url = UPLOAD_MEDIA;
JSONObject jsonObject =
PostMethod post = new PostMethod(url);
post.setRequestHeader("Connection", "Keep-Alive");
post.setRequestHeader("Cache-Control", "no-cache");
FilePart media =
HttpClient httpClient = new HttpClient();
//信任任何类型的证书
Protocol myhttps = new Protocol("https", new MySSLProtocolSocketFactory(), 443);
Protocol.registerProtocol("https", myhttps);
media = new FilePart("media", file);
Part[] parts = new Part[] { new StringPart("access_token", token),
new StringPart("type", type), media };
MultipartRequestEntity entity = new MultipartRequestEntity(parts,
post.getParams());
post.setRequestEntity(entity);
int status = httpClient.executeMethod(post);
if (status == HttpStatus.SC_OK) {
String text = post.getResponseBodyAsString();
jsonObject = JSONObject.fromObject(text);
logger.info("upload Media failure status is:" + status);
} catch (FileNotFoundException execption) {
logger.error(execption);
} catch (HttpException execption) {
logger.error(execption);
} catch (IOException execption) {
logger.error(execption);
return jsonO
* 多媒体下载接口
* @comment 不支持视频文件的下载
* @param fileName
素材存储文件路径
* @param token
* @param mediaId
素材ID(对应上传后获取到的ID)
* @return 素材文件
public static File downloadMedia(String fileName, String token,
String mediaId) {
String url = getDownloadUrl(token, mediaId);
return httpRequestToFile(fileName, url, "GET", null);
* 以http方式发送请求,并将请求响应内容输出到文件
* @param path
* @param method
* @param body
* @return 返回响应的存储到文件
public static File httpRequestToFile(String fileName,String path, String method, String body) {
if(fileName==null||path==null||method==null){
File file =
HttpURLConnection conn =
InputStream inputStream =
FileOutputStream fileOut =
URL url = new URL(path);
conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestMethod(method);
if (null != body) {
OutputStream outputStream = conn.getOutputStream();
outputStream.write(body.getBytes("UTF-8"));
outputStream.close();
inputStream = conn.getInputStream();
if(inputStream!=null){
file = new File(fileName);
//写入到文件
fileOut = new FileOutputStream(file);
if(fileOut!=null){
int c = inputStream.read();
while(c!=-1){
fileOut.write(c);
c = inputStream.read();
} catch (Exception e) {
logger.error(e);
if(conn!=null){
conn.disconnect();
* 必须关闭文件流
* 否则JDK运行时,文件被占用其他进程无法访问
inputStream.close();
fileOut.close();
} catch (IOException execption) {
logger.error(execption);
public static void main(String[] args) {
File f = new File("D:/test.png");
String appId = "";
String appSecret = "";
String token = WeChatApiUtil.getToken(appId, appSecret);
JSONObject o = WeChatApiUtil.uploadMedia(f, token.getAccessToken(), "image");
System.out.println(o.toString());
//下载刚刚上传的图片以id命名
String media_id = o.getString("media_id");
File t = WeChatApiUtil.downloadMedia("D:/"+media_id+".png", token.getAccessToken(), media_id);
楼主我也正在弄这个,能发一下你的代码吗?
楼主求助 楼主求助
望加我, 大恩不言谢啊
你好,我现在也在弄这个,求指教
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐后使用快捷导航没有帐号?
只需一步,快速开始
查看: 1455|回复: 2
积分106精华0主题帖子威望0 活跃109 PP币557 PP豆51 阅读权限10最后登录
, 积分 106, 距离下一级还需 194 积分
TA的每日心情开心 17:42签到天数: 89 天连续签到: 0 天[LV.6]常住居民II威望0 活跃109 PP币557 PP豆51
本帖最后由 tybaobao 于
19:38 编辑
如题,谢了。再有怎样把照片导入到手机,用PP助手S还是ITUNS?导入到什么位置或是文件夹。现在有数码单反拍的照片要分享到群聊中。求教了!{:12_531:}
积分2212精华0主题帖子威望24 活跃3059 PP币9986 PP豆7053 阅读权限90最后登录
TA的每日心情开心 01:00签到天数: 545 天连续签到: 0 天[LV.9]以坛为家II威望24 活跃3059 PP币9986 PP豆7053 设备iPad 3/4
01:31 上传
圈起来的地方这样操作就行了,就导入到手机里不是拍的图片,然后上微信正常发送就好了
积分106精华0主题帖子威望0 活跃109 PP币557 PP豆51 阅读权限10最后登录
, 积分 106, 距离下一级还需 194 积分
TA的每日心情开心 17:42签到天数: 89 天连续签到: 0 天[LV.6]常住居民II威望0 活跃109 PP币557 PP豆51
[VIP]magic风间 发表于
圈起来的地方这样操作就行了,就导入到手机里不是拍的图片,然后上微信正常发送就好了
谢谢兄弟的回复。昨天打开网页版的微信,发现有WIN版的微信了,装了,可直接在软件中发送图片,这样就省了导入到手机中了。
授予离职版主的专属勋章
论坛雷锋好模范
论坛回帖之王
Copyright&
Guangzhou UC Network Technology Co., Ltd. All Rights Reserved. 广州优视网络科技有限公司 版权所有豆丁微信公众号
君,已阅读到文档的结尾了呢~~
广告剩余8秒
文档加载中
微信怎么发图片
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
微信怎么发图片
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口Word文档如何发给微信好友?微信发Word文档方法_百度经验
&&&&&&&&&手机软件Word文档如何发给微信好友?微信发Word文档方法听语音1234567推荐视频Word文档如何发给微信好友?时长:00:53来自:skyshileisl返回暂停重播播放
百度经验:jingyan.baidu.com我们在通过微信互相传送文件的时候,不知道大家有没有发现,通过微信聊天界面添加附件的方式是无法传送Word文档等文件的,只能传一些图片或者小视频等,那么,如果我们的微信好友需要我们传给他一个Word文档,我们该怎么办呢?百度经验:jingyan.baidu.com手机网络WPS百度经验:jingyan.baidu.com1如果是电脑上的文档,首先需要我们把文档下载到手机上,然后用手机上的WPS打开这个文档。进入WPS,点击打开,如图所示。2选择需要打开的目录,比如该文件在“我的文档”里,点击它,如图所示。3找到我们需要发送的Word文档,点击它,把它用WPS打开,如图所示。4打开以后,进入到编辑的页面,我们会看到右下角有一个“工具”项,点击它,如图所示。5点击以后,出现了几个菜单项,其中有另存为、输出为pdf、分享、打印等等,我们点击“分享”菜单,如图所示。6分享方式我们可以选择是文件发送还是截屏发送还是文本发送,这里我们现在文件发送,如图所示。7点击文件发送后,页面出现了几个分享的方式,里面有微信的“发送给朋友”,点击它,如图所示。8在出现的微信好友联系人中选择你想发送的人,点击他的头像即可,如图所示。9如果想说些什么,我们可以附加一些文字,然后点击右下方的“分享”按钮,如图所示。10稍等片刻,屏幕显示“已发送”,说明我们的Word文档的全部内容已经发送给微信好友了。END百度经验:jingyan.baidu.com这个方法属于另辟蹊径的做法,微信直接发不了的情况下,我们想其他方法解决问题。如果该经验帮到了您,请点击右侧“双箭头”分享给您的朋友吧!想了解更多经验内容,请在右上角“关注”我吧!经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。投票(42)已投票(42)有得(0)我有疑问(0)◆◆说说为什么给这篇经验投票吧!我为什么投票...你还可以输入500字◆◆只有签约作者及以上等级才可发有得&你还可以输入1000字◆◆如对这篇经验有疑问,可反馈给作者,经验作者会尽力为您解决!你还可以输入500字相关经验20001热门杂志第1期你不知道的iPad技巧3698次分享第1期win7电脑那些事6523次分享第2期新人玩转百度经验1366次分享第1期Win8.1实用小技巧2627次分享第1期小白装大神1869次分享◆请扫描分享到朋友圈电脑文件图片怎么传到微信_百度知道
电脑文件图片怎么传到微信
我有更好的答案
音频、视频以及各种文件类型);点击“打开”。点击“文件图片”图标,选择想要发送的文件(图片、视频以及各种文件类型),手机登陆微信点击“文件传输助手”,点击微信网页版发送的相应文件,(支持文字电脑登录微信网页版,单击“文件传输助手“、图片、音频。文件发送成功后
电脑也登录微信,就可以在手机与电脑间互传文件图片了。
先保存在手机再上传微信即可
电脑安装微信
其他1条回答
为您推荐:
其他类似问题
您可能关注的内容
微信的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 使用div做成表格形式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信