新浪微薄份额2(分享)
2015-07-04 17:40
211 查看
上一篇文章描述了webview获得accessToken方法。那么我们说一下分享。
分享有两个接口,他们是post要求
https://api.weibo.com/2/statuses/update.json//纯文本界面共享 https://upload.api.weibo.com/2/statuses/upload.json //文本图片分享接口
ApiInfo.java
分享方法share2Weibo,拼接请求參数
ShareTask.java 联网发送post请求,分享内容
分享有两个接口,他们是post要求
https://api.weibo.com/2/statuses/update.json//纯文本界面共享 https://upload.api.weibo.com/2/statuses/upload.json //文本图片分享接口
private static final String ADD_PIC_T = "https://upload.api.weibo.com/2/statuses/upload.json"; private static final String ADD_T = "https://api.weibo.com/2/statuses/update.json"; private static final String[] ADD_SHARE_PARAMS = { "access_token", "status", "long", "lat" , "rip"};
ApiInfo.java
public class ApiInfo { private static final String TAG = "ApiInfo"; public static final int REQ_GET = 0; public static final int REQ_POST = 1; public static final int REQ_PUT = 2; private String method; private String host; private int requstType; private String[] paramNames; private Map<String, Object> params; private String filePath; public ApiInfo(String host, String method, String[] paramNames) { this.host = host; this.method = method; this.paramNames = paramNames; this.params = new HashMap<String, Object>(); } public ApiInfo(String host, String method, String[] paramNames, int requestType) { this.host = host; this.method = method; this.paramNames = paramNames; this.requstType = requestType; this.params = new HashMap<String, Object>(); } public String getFilePath() { return filePath; } public void setFilePath(String filePath) { this.filePath = filePath; } public int getRequstType() { return requstType; } public void setRequstType(int requstType) { this.requstType = requstType; } public String getMethod() { return method; } public void setMethod(String method) { this.method = method; } public String[] getParamNames() { return paramNames; } public void setParamNames(String[] paramNames) { this.paramNames = paramNames; } public Map<String, Object> getParams() { if (params == null) params = new HashMap<String, Object>(); return params; } public void setParams(Map<String, Object> params) { this.params = params; } public String getHost() { return host; } public void setHost(String host) { this.host = host; } public String getPlainUrl() { StringBuffer url = new StringBuffer(); url.append(host); url.append(method); url.append("?"); for (String paramName : getParamNames()) { LogInfo.d(TAG, "paramName=" + paramName); url.append(paramName); url.append("="); if (getParams().get(paramName) != null) try { url.append(URLEncoder.encode(getParams().get(paramName).toString(), "UTF-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } url.append("&"); } url.deleteCharAt(url.length() - 1); return url.toString(); } }
分享方法share2Weibo,拼接请求參数
public void share2Weibo(String content, String img) { ApiInfo apiInfo = new ApiInfo(ADD_PIC_T, "", ADD_PIC_T_PARAMS, ApiInfo.REQ_POST); Map<String, Object> params = new HashMap<String, Object>(); params.put(ADD_PIC_T_PARAMS[0], oAuth.accessToken); params.put(ADD_PIC_T_PARAMS[1], content); params.put(ADD_PIC_T_PARAMS[2], "0.0"); params.put(ADD_PIC_T_PARAMS[3], "0.0"); params.put(ADD_PIC_T_PARAMS[4], AndroidUtils.GetHostIp()); apiInfo.setParams(params); String imgPath = null; if (!TextUtils.isEmpty(img)) if (IOUtils.getCacheImageFile(context, img) != null) {//通过path推断图片是否存在 imgPath = IOUtils.getCacheImageFile(context, img).getAbsolutePath(); } else apiInfo.setHost(ADD_T);//假设图片不存在更改分享内容的url new ShareTask(apiInfo).execute(imgPath); }
ShareTask.java 联网发送post请求,分享内容
class ShareTask extends AsyncTask<String, Object, Json> { private ApiInfo apiInfo; public ShareTask(ApiInfo apiInfo) { this.apiInfo = apiInfo; } @Override protected Json doInBackground(String... params) { String result = ""; if (params.length > 0 && params[0] != null) { result = new String(httpClient.uploadFile(apiInfo.getPlainUrl(), "pic", params[0])); } else result = new String(httpClient.request(apiInfo.getPlainUrl(), apiInfo.getRequstType() == ApiInfo.REQ_POST)); LogInfo.d(TAG, "result:" + result); Json json = new Json(result); return json; } @Override protected void onPostExecute(Json result) { super.onPostExecute(result); } }
相关文章推荐
- JavaScript中的this陷阱的最全收集
- ios开发流程详解
- Factorization Machines 学习笔记(四)学习算法
- [转载] tmux的使用tips
- 新手安装ubuntu问题解决(easyBCD没作用,分区,双显卡闪屏等)
- adb脚本输出android调试信息
- 最终时刻
- Mysql User表为空
- 计算几何:线段判交模板--ACM
- java web之Filter详解
- Swift开发教程--Swift的基本语法
- gcc 已知的问题及规避方案 https://gcc.gnu.org/bugs/#known
- error C2440: ‘static_cast’ : cannot convert from ‘HRESULT (__thiscall CtestpalView::* )(WPARAM,LPARA
- javascript prototype详解
- android 随着认识的去除率EditText(它配备了防抖效果)
- (转)Sublime Text 2 2.0.2 序列号
- 联系我们如何添加百度地图路线坐标
- 你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
- 音乐播放器之myeclipse项目
- Linux NFS 介绍