安卓開發 新浪微博share接口實現發帶本地圖片的微博

1.微博share接口

在開始之前,我們先看一下要用到的這個接口:


img_a64b813f4f69df77f9d5e6ae5c040c9e.png

? ? 我們這次是要上傳本地圖片,可以很明確的知道,除了要用POST方式提交請求,還要采用multipart/form-data編碼方式。

? ? 那么這個multipart/form-data編碼方式是什么呢?我查了許多資料,然而還是不懂。大概意思應該是把數據拼成web的POST結構。想詳細了解的同學可以去參考其他大神的資料。

下面,咱們開始教程。

2.獲取本地圖片文件

通過Intent打開本地圖庫


img_c2b79a5ca1c9cdd91e2ea6ffcc47bd77.png

然后通過下面的方法獲取圖片路徑


img_b444203c14163d37522f269eb2c13cf5.png

關于怎么獲取圖片路徑我就不細講了,網上資料很多,也不難。

獲取路徑后,將其裝載入文件中,如圖所示


img_fc818e133b23daea9a9b31844f3c4a1e.png

我獲取到的scrPath = /storage/emulated/0/DCIM/P70819-094705.jpg

到此,圖片文件的獲取結束

3.構造請求體

我之前發純文本微博時,使用 FormBodybody =newFormBody.Builder() 的形式來構造,

后來發現,帶上圖片的時候就不行了,我不知道怎么寫。

然后采用了RequestBody requestBody =new MultipartBody.Builder()來構造。他們之間的區別我不是很清楚。

但是看源代碼,似乎RequestBody更容易實現multipart/form-data編碼方式。


img_f5df65036e550e25d73909275527eb84.png

當我們獲取圖片文件之后,就可以將其傳到任何一個你覺得方便的地方(不傳也可以),用于構造請求體。

.setType(MultipartBody.FORM)

這一句一定不能少,我也不知道為什么,少了之后服務器會說不是multipart/form-data編碼方式。

然后如果是參數,使用.addFormDataPart()

如果是圖片文件,使用addPart()

我還是附上代碼,方便復制。

RequestBodyrequestBody;

requestBody =newMultipartBody.Builder()

.setType(MultipartBody.FORM)//請求的類型,貌似也叫請求頭吧....

.addFormDataPart("access_token", access_token)//參數1

.addFormDataPart("status",? statuContent+"http://www.mob.com/downloads/")//參數2

.addPart(

Headers.of("Content-Disposition","form-data; name=\"pic\"; filename=\""+"pic.jpg"+"\""),

RequestBody.create(null, file))//圖片文件

.build();

4.構造Request,發送請求

接下來就很簡單了,這個和發純文本的微博差不多。


img_5cbcdb5a78a79c335df96ed43f4ffdd1.png

我最后還用了異步數據處理,來接收返回來的一個statu,當返回的不是錯誤時,就證明你成功了。


img_5da7f69d52ee07f0d7365a07a20833e2.png
對應的handler

對應的解析方法我就不粘貼出來了,其實不解析也是可以看的,只是會亂點。

以上就是全部內容。

希望我的分享能讓你們少走彎路.

相關參考鏈接:

http://blog.csdn.net/king866/article/details/52526901

http://blog.csdn.net/android_freshman/article/details/51910937

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455290.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455290.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455290.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python編寫裝飾器_我也來寫一下python裝飾器

有借用,但原文出處已經找不到了,根據筆記分享一下解釋器的基礎。下面的代碼表示,等待兩秒鐘,輸出‘test is running。現在要求增加統計程序運行時間的功能。等待兩秒鐘,輸出‘test is running,現要求增加統計程序運行時…

VirtualBox安裝Centos6.8出現——E_INVALIDARG (0x80070057)

VirtualBox使用已有的虛擬硬盤出錯: 問題描述:UUID已經存在 Cannot register the hard disk E:\system_iso\centos6.8.vdi {05f096aa-67fc-4191-983d-1ed00fc6cce9} because a hard disk E:\system_iso\centos68_02\centos6.8.vdi with UUID {05f096aa-6…

DFT 與 ATPG綜 述

DFT 可測試性設計 工程會接觸 DFT。需要了解 DFT 知識,但不需要深入。 三種基本的測試(概念來自參考文檔): 邊界掃描測試:Boundary Scan Test: 測試目標是 IO-PAD,利用 JTAG 接口互連以方便 測試。&#x…

非線性動力學_非線性動力學特輯 低維到高維的聯通者

序言: 本文將以維度為主線, 帶量大家進入非線性動力學的世界。 文章數學部分不需要全部理解, 理解思維方法為主非線性動力學,是物理學的思維進入傳統方法所不能解決的問題的一座豐碑。它可以幫助我們理解不同復雜度和時間空間尺度…

Go語言channel與select原理

本文會嘗試解釋 go runtime 中 channel 和 select 的具體實現,部分內容來自 gophercon2017。Go版本為1.8.3channel 第一部分講述一下 channel 的用法。channel 可以看做一個隊列,用于多個goroutine之間的通信,例如下面的例子,一個…

Xadmin添加用戶小組件出錯

環境: Python 3.5.6 Django 2.1 Xadmin 原因: render函數在django2.1上有變化 解決方案: 1.在Python終端輸入命令help(xadmin) 查看xadmin安裝位置 得到如下輸出 FILE/root/anaconda3/envs/learndjango/lib/python3.5/site-packages/xad…

成本預算的四個步驟_全網推廣步驟有哪些?

全網推廣的步驟是什么?一般來說,搜索引擎優化是大多數中小企業常用的推廣方法。主要是通過對一些搜索引擎的排名來提高網站的曝光率,從而更好的提高自己網站的流量,從而更好的實現互聯網層面的銷售。接下來,讓我們學習…

undefined reference to `std::cout'等錯誤

(1)gcc和g都是GNU(組織)的一個編譯器。 (2)后綴名為.c的程序和.cpp的程序g都會當成是c的源程序來處理。而gcc不然,gcc會把.c的程序處理成c程序。 (3)對于.cpp的程序,編譯可以用gcc/g…

FFPLAY的原理(二)

關于包Packets的注釋從技術上講一個包可以包含部分或者其它的數據,但是ffmpeg的解釋器保證了我們得到的包Packets包含的要么是完整的要么是多種完整的幀。現在我們需要做的是讓SaveFrame函數能把RGB信息定稿到一個PPM格式的文件中。我們將生成一個簡單的PPM格式文件…

python生成requirements.txt的兩種方法

python項目如何在另一個環境上重新構建項目所需要的運行環境依賴包? 使用的時候邊記載是個很麻煩的事情,總會出現遺漏的包的問題,這個時候手動安裝也很麻煩,不能確定代碼報錯的需要安裝的包是什么版本。這些問題,requi…

node.js 安裝使用http-server

node.js npm全局安裝了http-server后我該怎么使用它?我在它的安裝目錄下創建了inde.html,瀏覽器localhost:8080可以訪問,那我的項目需要放在它的安裝目錄下?還是需要在我的項目下配置什么或者使用什么指令啟動它?我在我…

D - 卿學姐與魔法

卿學姐與魔法 Time Limit: 1200/800MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit Status“你的膜法也救不了你 在去拯救公主的道路上,卿學姐披荊斬棘,刀刃早已銹跡斑斑。 一日卿學姐正在為武器的問題發愁,碰到了正…

python對excel表統計視頻教程_Python實現對excel文件列表值進行統計的方法

本文實例講述了Python實現對excel文件列表值進行統計的方法。分享給大家供大家參考。具體如下:#!/usr/bin/env python#codinggbk#此PY用來統計一個execl文件中的特定一列的值的分類import win32com.clientfilenameraw_input("請輸入要統計文件的詳細地址&#…

mooc后臺管理系統設計

摘 要 本設計采用Python中的Django框架實現Mooc后臺管理界面設計,django是一個完整的開源web開源框架,使用起來能夠快速的搭建你想要的網站,由于django自帶后臺管理系統,本設計中后臺管理模板采用功能更加強大的Xadmin實現。數據庫部分采用mysql5.7,由于django中有自帶封裝的數…

DirectShow系統初級指南

流媒體的處理,以其復雜性和技術性,一向廣受工業界的關注。特別伴隨著因特網的普及,流媒體在網絡上的廣泛應用,怎樣使流媒體的處理變得簡單而富有成效逐漸成為了焦點問題。選擇一種合適的應用方案,事半功倍。此時&#…

正則正整數含0

^0?$|^([1-9][0-9]*)?$

MySQL 數據庫導出導入操作

有時需要將 MySQL 數據庫中的數據導入到其它的數據庫中,這里以從 Ubuntu 系統的 MySQL 數據庫導出 zabbix 這個數據庫到 Windows 系統中的MySQL 為例。 導出數據庫 導出數據其實非常方便,比如將 MySQL 中的 zabbix 這個數據庫導出到當前文件夾&#xff…

您的apple id 暫時不符合使用此應用程序_Mac相機不工作時該怎么辦

蘋果公司的許多臺式機和筆記本電腦都包含一個內置網絡攝像頭,該公司愉快地將其稱為FaceTime相機。但是,如果您的Mac網絡攝像頭無法正常工作,并且在嘗試訪問它時顯示為斷開連接或不可用,則您可能不會感到高興。您可以嘗試以下操作來…

基于DirectShow的流媒體解碼和回放

一、 前言  流媒體的定義很廣泛,大多數時候指的是把連續的影像和聲音信息經過壓縮處理后放上網站服務器,讓用戶一邊下載一邊觀看、收聽,而不需要等整個壓縮文件下載到自己機器就可以觀看的視頻/音頻傳輸、壓縮技術。流媒體也指代由這種技術…

《知易行難》擴展練習

在學習了《知易行難》后,這個是一個選做的擴展練習,但是里面的問題真的的很好,所以我也將在這里真實的分享,但是有些敏感的人名我就隱去了。 1. 這一年你做了些什么事情? 1)團隊的整合,將團隊…