2019-07-12 12:20:54 loveqdm 阅读数 171
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27810 人正在学习 去看看 秦子恒

就是把防火墙关掉
在这里插入图片描述
请把防火墙关闭 然后打开微信开发者工具就会显示文件了。我的就是这样解决的。
好了后 你可以在吧防火墙开启 也可以使用一个专有网络关闭防火墙。反正如果没有文件显示你就去关闭防火墙再打开就可以了。

2020-01-10 11:17:13 diyangxia 阅读数 10
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27810 人正在学习 去看看 秦子恒

1、安装nodejs环境
到官网下载安装包(node-v12.14.1-x64.msi),点击下一步一直安装到底

2、使用命令行模式进入小程序项目云函数文件夹,执行安装excel-export命令,安装完成后,输入node -v测试一下是否安装成功

npm install excel-export

3、在微信开发者工具的小程序云函数文件夹上右键新建node.js云函数,随便输入一个名字,比如excelexport,然后把上一步下载下来的\cloudfunctions\node_modules\excel-export\example文件夹下的styles.xml文件拷贝到excelport文件夹下,这样这个新建的文件夹下就有三个文件
在这里插入图片描述
4、修改一下package.json文件,添加excel-export支持
在这里插入图片描述
5、修改index.js文件(重点)

// 云函数入口文件
const cloud = require('wx-server-sdk')
const nodeExcel = require('excel-export')
const path = require('path');
cloud.init()

// 云函数入口函数
exports.main = async(event, context) => {
  var tableHead = event.excelhead;
  var tableMap = {
    styleXmlFile: path.join(__dirname, "styles.xml"),
    name: Date.now() + "-export",
    cols: [],
    rows: [],
  }

  //添加表头  此处要注意格式type,会影响到rows
  tableMap.cols = [{
    caption: tableHead[0],
    type: 'string'
  }, {
    caption: tableHead[1],
    type: 'number'
  }, {
    caption: tableHead[2],
    type: 'string'
  }, {
    caption: tableHead[3],
    type: 'number'
  }, {
    caption: tableHead[4],
    type: 'number'
  }]

  var output = event.excelbody
  //添加每一行数据 此处字段数据需根据业务需求来重新定义
  for (var i = 0; i < output.length; i++) {
    tableMap.rows[tableMap.rows.length] = [
      output[i].date, output[i].category, output[i].mark, output[i].paytype, output[i].money
    ]
  }
  console.log(tableMap);
  //保存excelResult到相应位置
  var excelResult = nodeExcel.execute(tableMap);
  var filePath = "outputExcels";
  var fileName = Date.now() + '.xlsx';
  return await cloud.uploadFile({
    cloudPath: path.join(filePath, fileName),
    fileContent: new Buffer(excelResult, 'binary')
  });
}

这里需要注意的就是表头的添加,格式一定要对,该是数字类型的就填number,该是布尔类型的就填bool等,不然生成的excel文件可能会比较乱,本人就是吃了这里的亏导致文件生成错误

6、右键上传云函数
在这里插入图片描述
7、云函数上传成功后,小程序端即可使用

 getExcel: function (contentArr) {
    wx.cloud.callFunction({
      name: 'excelexport',
      data: {
        excelhead: ["日期", "分类", "说明", "支付方式", "金额"],
        excelbody: contentArr
      },
      success: function (res) {
        console.log(res.result.fileID);
      },
      fail: function (res) {
        console.log(res);
      }
    })
  },

此处的contentArr是一个从云数据库里查出来的列表,格式值类似

[{'date':'01','category':1,'mark':'第一个','paytype':1,'money':100
},{'date':'02','category':2,'mark':'第二个','paytype':2,'money':200}
],{'date':'03','category':3,'mark':'第三个','paytype':3,'money':300}
]

8、生成的excel文件会保存在云开发的存储的outputExcels文件夹里,文件内容如下
在这里插入图片描述

参考博文:微信小程序云开发:使用excel-export导出excel

2015-02-23 17:51:55 afanxingzhou 阅读数 7796
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27810 人正在学习 去看看 秦子恒

2019-3-28 15:09:02更新:

感谢各位的支持。最早发帖是在大四毕业论文期间,所以针对第一次接触微信公众号的学生。时过境迁,4年过去了,在微信上遇到了方方面面的问题,这里贡献些自己的学习资料,供大家更上一层楼!

一,初学者:可以买《方倍工作室-微信公众号开发php版》(非广告),php简单易学好上手,我的php是幕课网自学的(php由入门到精通)。按照书里的内容稳步研究。期间需要学习到 “服务器搭建(推荐 阿里云香港1核1G1M centos),php控制面板安装(推荐appnode,宝塔);域名购买(阿里云)解析和绑定(国内服务器需备案域名,所以使用香港地区);代码编写上传(按书或博文自己捣鼓);公众号申请(尽量搞到认证服务号或服务号,不要订阅号):微信接口主要分两类:接口类和消息类——认证服务号可使用微信登陆等接口类功能,非认证号可使用消息类功能(比如自定义菜单那、自定义回复和扫码关注),这系列博文针对的都是消息类功能。

二,入门者:最好能有可用的认证服务号和微信商户,不然没法玩。代码上,若使用tp5或laravel或可以使用github开源包的php框架,推荐EasyWechat包,该包集成了几乎所有类型公众号的所有功能,不需要自己研究太多微信功能,会调用即可。

其它微信的框架,例如weiphp或微擎,不好用。如果只是给自己系统增加个微信功能,用easywechat或者自己系统封装的微信类包;如果纯做微信开发,推荐weiphp。

有问题发邮件: lifan.25@qq.com

=============================以下为旧内容========================

前面两篇详细讲解了微信收发消息的“万能代码”,今天开点小荤,用MySql数据表实现关键字回复。

老规矩,声明背景:

1.我使用的是BAE3.0扩展服务中的MySql数据库,

2.关键词回复代码 是在 微信核心页代码的基础上修改的

3.使用数据库作为关键字回复适用于开发者模式下关键字非常多的情形,如果公众平台没有太多关键字,就不需要;使用数据库就不需要频繁修改代码了。

4.以下代码的局限性:不适合回复 多图文消息,因为一次只查询出一条结果。

========================================华丽丽的分割线==================================================

 

 //接收文本消息
    private function receiveText($object)
    {
    	include './conn/conn.php';//连接数据库
    	mysql_set_charset("utf8");//设置字符集,没有测试是否必须。科普:微信服务器采用utf8,所以MySql数据库字符集是utf8_general_ci。
    	$keyword = $object->Content;//获取关键字
    	$rs = mysql_query("select * from guanjiancihuifu where keywords='$keyword'",$link);//查询数据
        $info = mysql_fetch_array($rs);//将查询到的数据填充到数组
        if(!$rs)
        {
        	$content="词库中没有这个词,查询失败!\nBy阿凡舟舟";           //$rs为空
        }
        else
        {       //获取查询到的结果;[]内的为数据表列名
        	$type = $info[type];              //回复消息类型——text,image,voice,video,music,news
        	$contentStr = $info[content];        //文本消息
        
        	$Title = $info[title];
        	$Description = $info[description];//单图文消息
        	$PicUrl = $info[picurl];
        	$Url = $info[url];
        
        	$MusicUrl = $info[musicurl];     //音乐消息
        	$HQMusicUrl = $info[hqmusicurl];
        
        switch ($type)//这里我设置一列为type,借以区分回复消息的类型
        {
            case "text":
                $content = $contentStr;        //文本消息
                break;
            case "news":                      //这里的news仅代表单图文
                $content = array();
                $content[] = array("Title"=>$Title,  "Description"=>$Description, "PicUrl"=>$PicUrl, "Url" =>$Url);
                break;
           /*  case "多图文":                //多图文还没有实现
                $content = array();
                $content[] = array("Title"=>"多图文1标题", "Description"=>"", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
                $content[] = array("Title"=>"多图文2标题", "Description"=>"", "PicUrl"=>"http://d.hiphotos.bdimg.com/wisegame/pic/item/f3529822720e0cf3ac9f1ada0846f21fbe09aaa3.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
                $content[] = array("Title"=>"多图文3标题", "Description"=>"", "PicUrl"=>"http://g.hiphotos.bdimg.com/wisegame/pic/item/18cb0a46f21fbe090d338acc6a600c338644adfd.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
                break; */
            case "music":
                $content = array("Title"=>$Title, "Description"=>$Description, "MusicUrl"=>$MusicUrl, "HQMusicUrl"=>$HQMusicUrl);
                break;
            default:
                $content = "该关键词还没有收录词库。请从菜单获取信息\n\n".date("Y-m-d H:i:s",time())."\nBy阿凡舟舟";
                break;
        }//switch
        	mysql_close($link);
        }//else
        if(is_array($content)){//TODO 如果发过来的是图片链接或音乐链接。。。
            if (isset($content[0]['PicUrl'])){
                $result = $this->transmitNews($object, $content);
            }else if (isset($content['MusicUrl'])){
                $result = $this->transmitMusic($object, $content);
            }
        }else{
            $result = $this->transmitText($object, $content);
        }
        return $result;
    }


数据表内容

 

 

==============================================期间遇到的问题===============================================================

1.为了代码的美观,我把关键字查询代码片段放在了guanjianzi.php文件,在微信核心页include过来。下面是代码

<?php
include '../conn/conn.php';
mysql_set_charset("utf8");

$rs = mysql_query("select * from guanjiancihuifu where keywords='$keyword'",$link);//因为这个页面被include了,$keyword来自微信核心代码页
$info = mysql_fetch_array($rs);
if(!$rs)
{
	die("can't find result!");
}
else
{
$type = $info[type];              //回复消息类型——text,image,voice,video,music,news
$contentStr = $info[content];        //文本消息

$Title = $info[title];
$Description = $info[description];//单图文消息
$PicUrl = $info[picurl];
$Url = $info[url];

$MusicUrl = $info[musicurl];     //音乐消息
$HQMusicUrl = $info[hqmusicurl];

mysql_close($link);
}
?>

结果微信公众平台测试出现:该公众号暂时无法提供服务...

 

解决办法:把代码放在微信核心页。

经验教训:在一个页面中写的代码和include另一个页面中同样的代码,还是有很大差别的。数据的交叉传递造就了服务的无法运行。

2.php页面在zend studio 浏览器运行时,从数据库中获取的数据是乱码。

解决办法:在页面首添加 mysql_set_charset("utf8"); 

                保证软件设置字符集为urf-8

                设置在外部浏览器中浏览(貌似这个最有用)。

到现在我的查询数据库结果在zend studio浏览器中还是乱码。。但在微信公众号查询图书就没有乱码——很明显,内部浏览器编码不是utf-8,估计是gbk2312。

=========================================================================================================================

扩展:使用循环语句输出查询结果,多图文貌似就有救了呢,么么哒!

介绍到此。

 

2016-11-10 16:22:00更新:

数据库资源下载地址:http://download.csdn.net/detail/afanxingzhou/9679126

2019-05-06 10:19:31 weixin_42618191 阅读数 95
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27810 人正在学习 去看看 秦子恒

前言

本文简要记录个人安装前端开发软件和环境时注意事项,以及统计一些很好实践了很实用的参考链接,这样以后就不用一个一个的查找。哈哈。后续会慢慢添加更多的。这里谢过各路大神的博客。

Git

下载地址:https://git-scm.com/download/win
值得注意的是在安装完git后,拉去代码时要输入用户名及密码。但是输入错误是不会提示的。但是操作的时候会报错
在这里插入图片描述
这时需要更改密码,如下
在这里插入图片描述
在普通凭据中对应有git的,删除过后再拉取代码时就会要求重新输入了。

node

下载地址:https://nodejs.org/en/

Photoshop

参考路径:https://jingyan.baidu.com/article/48a420572ad061a925250445.html

微信开发者工具

工具下载地址: https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
小程序开发的安装想到是很明了的。就按默认勾选的安装就好了(除了安装路径)
参考路径:https://jingyan.baidu.com/article/4d58d5415450049dd4e9c02e.html

支付宝开发者工具

工具下载地址: https://docs.alipay.com/mini/ide/download

VSCode

下载地址:https://code.visualstudio.com/Download
1.汉化:https://jingyan.baidu.com/article/7e44095377c9d12fc1e2ef5b.html
2.常用插件:https://blog.csdn.net/shunfa888/article/details/79606277

HBuilderX

下载地址:http://www.dcloud.io/hbuilderx.html
插件安装在编辑器界面的工具中,有很详细的接受各个插件的功能

sublime_text

下载地址:http://www.sublimetext.com/3
参考博客:https://blog.csdn.net/qq_41485414/article/details/79763651

Vue脚手架搭建项目

安装插件(Vuex、sass、axios):https://www.jianshu.com/p/d1b8a1310c0a
安装插件(Vux):https://blog.csdn.net/brain_bo/article/details/82701931

2016-11-11 16:22:58 dragonpeng2008 阅读数 1659
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27810 人正在学习 去看看 秦子恒
参数
  描述
appId 公众号的唯一标识  应用id
timestamp 生成签名的时间戳
nonceStr 生成签名的随机串
signature 签名

上述表格中的四个参数是初始化调用微信jsapi的凭证,咱们在前几节已经反复说明如何使用了,在这里就不在贴出如何生成上述四个参数了,不懂得初学者点击链接http://www.vxzsk.com/79.html查看。

完整的jsp代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
     
    <title>微信jsapi测试-V型知识库</title>
    <meta name="viewport" content="width=320.1,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
   <script src="http://res.wx.qq.com/open/js/jweixin-1.1.0.js"> </script
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script>
     
  </head>
   
  <body>
  <center><h3>欢迎来到微信jsapi测试界面-V型知识库</h3></center>
     <p>基础接口之判断当前客户端是否支持指定的js接口</p>   
     <input type="button" value="checkJSAPI" id="checkJsApi"><br>
      <h3 id="menu-image">图像接口</h3>
      <span class="desc">拍照或从手机相册中选图接口</span><br>
      <button class="btn btn_primary" id="chooseImage">chooseImage</button><br>
      <span class="desc">预览图片接口</span><br>
      <button class="btn btn_primary" id="previewImage">previewImage</button><br>
      <span class="desc">上传图片接口</span><br>
      <button class="btn btn_primary" id="uploadImage">uploadImage</button><br>
      <span class="desc">下载图片接口</span><br>
      <button class="btn btn_primary" id="downloadImage">downloadImage</button><br>
  显示图片<img alt="" src="" id="faceImg" data-bd-imgshare-binded="1">
     
  <br>
   
   
  <script type="text/javascript">
  wx.config({  
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。  
    appId: '${appId}', // 必填,公众号的唯一标识  
    timestamp: '${ timestamp}' , // 必填,生成签名的时间戳  
    nonceStr: '${ nonceStr}', // 必填,生成签名的随机串  
    signature: '${ signature}',// 必填,签名,见附录1  
    jsApiList: ['checkJsApi',
                'chooseImage',
                'previewImage',
                 'uploadImage',
                 'downloadImage'
               ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2  
});  
   
wx.ready(function(){  
    // 5 图片接口
  // 5.1 拍照、本地选图
  var images = {
    localId: [],
    serverId: []
  };
  document.querySelector('#chooseImage').onclick = function () {
    wx.chooseImage({
      success: function (res) {
        images.localId = res.localIds;
        alert('已选择 ' + res.localIds.length + ' 张图片');
$("#faceImg").attr("src", res.localIds[0]);//显示图片到页面上
      }
    });
  };
 
  // 5.2 图片预览
  document.querySelector('#previewImage').onclick = function () {
    wx.previewImage({
      current: 'http://www.vxzsk.com/upload//bf04c9b5-5699-421d-900e-3b68bbe58a8920160816.jpg',
      urls: [
        'http://www.vxzsk.com/upload//bf04c9b5-5699-421d-900e-3b68bbe58a8920160816.jpg',
        'http://www.vxzsk.com/upload//bf04c9b5-5699-421d-900e-3b68bbe58a8920160816.jpg',
        'http://www.vxzsk.com/upload//bf04c9b5-5699-421d-900e-3b68bbe58a8920160816.jpg'
      ]
    });
  };
 
  // 5.3 上传图片
  document.querySelector('#uploadImage').onclick = function () {
    if (images.localId.length == 0) {
      alert('请先使用 chooseImage 接口选择图片');
      return;
    }
    var i = 0, length = images.localId.length;
    images.serverId = [];
    function upload() {
      wx.uploadImage({
        localId: images.localId[i],
        success: function (res) {
          i++;
          //alert('已上传:' + i + '/' + length);
          images.serverId.push(res.serverId);
          if (i < length) {
            upload();
          }
        },
        fail: function (res) {
          alert(JSON.stringify(res));
        }
      });
    }
    upload();
  };
 
  // 5.4 下载图片
  document.querySelector('#downloadImage').onclick = function () {
    if (images.serverId.length === 0) {
      alert('请先使用 uploadImage 上传图片');
      return;
    }
    var i = 0, length = images.serverId.length;
    images.localId = [];
    function download() {
      wx.downloadImage({
        serverId: images.serverId[i],
        success: function (res) {
          i++;
          alert('已下载:' + i + '/' + length);
          images.localId.push(res.localId);
          if (i < length) {
            download();
          }
        }
      });
    }
    download();
  };
   
   
});  
 //初始化jsapi接口 状态
wx.error(function (res) {
  alert("调用微信jsapi返回的状态:"+res.errMsg);
});
   
 </script>
    
  </body>
</html>

1,上述代码html按钮代码功能已经描述的很清楚了,每点击一个按钮触发一个js功能函数。

2、点击上传图片按钮之前首先要点击选择图片按钮功能,上传图片成功后会返回serverid,所以本人认为这里非常梗,调用微信jsapi上传接口,我的图片到底上传到哪里去了呢?实际上我们把图片上传到微信服务器上了也就是临时素材里面去了,可登陆微信官方管理平台查看,你也可以调用微信临时素材接口获取图片。

3、通过以上代码,我们就已经把图片上传到微信服务器了,但是我们上传到微信服务器的图片只能保存3天,所以上传完之后我们要把图片下载到我们的本地服务器,这里用到微信下载多媒体接口http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID 其中media_id就是我们上面的serverId ,所以我们就可以把图片下载到本地了,代码如下

package com.test.weixin;
import net.sf.json.JSONObject;
 
import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.log4j.Priority;
import org.springframework.util.StringUtils;
 
import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
/****
 
 * @author V型知识库 www.vxzsk.com
 *
 */
public class DloadImgUtil {
  /**
   * 根据内容类型判断文件扩展名
   *
   * @param contentType 内容类型
   * @return
   */
  public static String getFileexpandedName(String contentType) {
    String fileEndWitsh = "";
    if ("image/jpeg".equals(contentType))
      fileEndWitsh = ".jpg";
    else if ("audio/mpeg".equals(contentType))
      fileEndWitsh = ".mp3";
    else if ("audio/amr".equals(contentType))
      fileEndWitsh = ".amr";
    else if ("video/mp4".equals(contentType))
      fileEndWitsh = ".mp4";
    else if ("video/mpeg4".equals(contentType))
      fileEndWitsh = ".mp4";
    return fileEndWitsh;
  }
  /**
   * 获取媒体文件
   * @param accessToken 接口访问凭证
   * @param mediaId 媒体文件id
   * @param savePath 文件在本地服务器上的存储路径
   * */
  public static String downloadMedia(String accessToken, String mediaId, String savePath) {
    try {
      accessToken = DloadImgUtil.getAccessToken();
    catch (IOException e) {
      e.printStackTrace();
    }
    String filePath = null;
    // 拼接请求地址
    String requestUrl = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID";
    requestUrl = requestUrl.replace("ACCESS_TOKEN", accessToken).replace("MEDIA_ID", mediaId);
    try {
      URL url = new URL(requestUrl);
      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      conn.setDoInput(true);
      conn.setRequestMethod("GET");
 
      if (!savePath.endsWith("/")) {
        savePath += "/";
      }
      // 根据内容类型获取扩展名
      String fileExt = DloadImgUtil .getFileexpandedName(conn.getHeaderField("Content-Type"));
      // 将mediaId作为文件名
      filePath = savePath + mediaId + fileExt;
      BufferedInputStream bis = new BufferedInputStream(conn.getInputStream());
      FileOutputStream fos = new FileOutputStream(new File(filePath));
      byte[] buf = new byte[8096];
      int size = 0;
      while ((size = bis.read(buf)) != -1)
        fos.write(buf, 0, size);
      fos.close();
      bis.close();
 
      conn.disconnect();
      String info = String.format("下载媒体文件成功,filePath=" + filePath);
      System.out.println(info);
    catch (Exception e) {
      filePath = null;
      String error = String.format("下载媒体文件失败:%s", e);
      System.out.println(error);
    }
    return filePath;
  }
   
  /***
      * 获取acess_token 
      * 来源www.vxzsk.com
      * @return
      */
     public static String getAccessToken(){
            String appid="你公众号基本设置里的应用id";//应用ID
            String appSecret="你公众号基本设置里的应用密钥";//(应用密钥)
            String url ="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appid+"&secret="+appSecret+"";
            String backData=DloadImgUtil.sendGet(url, "utf-8"10000);
            String accessToken = (String) JSONObject.fromObject(backData).get("access_token");  
            return accessToken;
     }
      
      
     /***
         * 模拟get请求
         * @param url
         * @param charset
         * @param timeout
         * @return
         */
         public static String sendGet(String url, String charset, int timeout)
          {
            String result = "";
            try
            {
              URL u = new URL(url);
              try
              {
                URLConnection conn = u.openConnection();
                conn.connect();
                conn.setConnectTimeout(timeout);
                BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), charset));
                String line="";
                while ((line = in.readLine()) != null)
                {
                 
                  result = result + line;
                }
                in.close();
              catch (IOException e) {
                return result;
              }
            }
            catch (MalformedURLException e)
            {
              return result;
            }
           
            return result;
          }
   
}

效果图如下:

选择图片弹出的图片详情

上传成功后返回的serverId


转自:http://www.vxzsk.com/111.html

没有更多推荐了,返回首页