適配dropbox遇到的一個問題

dropbox是國外的一個云存儲產(chǎn)品,類似百度云盤温自,由于最近后臺接口升級,很多舊的接口都不能使用了皇钞,于是對其進(jìn)行適配。

如果想看dropbox的api松捉,請自帶梯子~~~網(wǎng)址如下:
https://www.dropbox.com/developers/documentation/http/documentation#files-upload

這里簡單的列一下接口情況

https://content.dropboxapi.com/2/files/upload

curl -X POST https://content.dropboxapi.com/2/files/upload \
    --header "Authorization: Bearer <get access token>" \
    --header "Dropbox-API-Arg: {\"path\": \"/Homework/math/Matrices.txt\",\"mode\": \"add\",\"autorename\": true,\"mute\": false}" \
    --header "Content-Type: application/octet-stream" \
    --data-binary @local_file.txt

{
    "path": "/Homework/math/Matrices.txt",
    "mode": "add",
    "autorename": true,
    "mute": false
}

curl命令是一個利用URL規(guī)則在命令行下工作的文件傳輸工具夹界。它支持文件的上傳和下載,所以是綜合傳輸工具隘世,但按傳統(tǒng)可柿,習(xí)慣稱curl為下載工具。作為一款強(qiáng)力工具丙者,curl支持包括HTTP复斥、HTTPS、ftp等眾多協(xié)議械媒,還支持POST目锭、cookies评汰、認(rèn)證、從指定偏移處下載部分文件痢虹、用戶代理字符串被去、限速、文件大小奖唯、進(jìn)度條等特征惨缆。做網(wǎng)頁開發(fā),curl是很重要的命令丰捷。不過做android 的我基本沒怎么使用坯墨,都是使用postman之類的工具代替。病往。捣染。

一看接口,很簡單呀荣恐,三下五除二就寫完了液斜,運(yùn)行程序,調(diào)用接口叠穆,what少漆。。硼被。
怎么提示我Dropbox-API-Arg不能轉(zhuǎn)化成json,打印字符串也完全沒有問題啊示损。。嚷硫。
各種head都設(shè)置了检访。。仔掸。暈脆贵。。起暮。

官網(wǎng)也沒有什么說明卖氨。。负懦。筒捺。

后來懷疑會不會是編碼問題,發(fā)現(xiàn)我的json里面含有中文纸厉,使用英文路徑果然正常了系吭。

HttpURLConnection的getHeaderField默認(rèn)所有header是用iso-8859-1編碼的,但是中文實際是用uft8編碼颗品。所以就出現(xiàn)了亂碼問題肯尺。而我們打印使用utf8當(dāng)然也不會有亂碼了沃缘。

既然知道原因,解決起來就很簡單了蟆盹。

這里主要有兩個做法孩灯,一種是吧中文和全角符號全部轉(zhuǎn)化unicode。
unicode是一種能表示所有字符的編碼方案逾滥,所以這樣服務(wù)器就能夠正確識別了峰档,解決亂碼對json解析錯誤問題。至于編碼的各種概念寨昙,請自行g(shù)oogle讥巡。具體代碼如下:

 /**
     * 中文轉(zhuǎn)換成 unicode
     *
     * @author leon 2016-3-15
     * @param inStr
     * @return
     */
    public static String encodeUnicode(String inStr) {
        char[] myBuffer = inStr.toCharArray();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < inStr.length(); i++) {
            char ch = myBuffer[i];
            if (ch < 10) {
                sb.append("\\u000" + (int) ch);
                continue;
            }
            Character.UnicodeBlock ub = Character.UnicodeBlock.of(ch);
            if (ub == Character.UnicodeBlock.BASIC_LATIN) {
                // 英文及數(shù)字等
                sb.append(myBuffer[i]);
            } else if (ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
                // 全角半角字符
                int j = myBuffer[i] - 65248;
                sb.append((char) j);
            } else {
                // 漢字
                int s = myBuffer[i];
                String hexS = Integer.toHexString(Math.abs(s));
                String unicode = "\\u" + hexS;
                sb.append(unicode.toLowerCase());
            }
        }
        return sb.toString();
    }

另外一種方法就是把多字節(jié)的編碼轉(zhuǎn)換成單字節(jié)的iso-8859-1,這樣并不會造成編碼信息的丟失。

    new String(jsonString.getBytes("ISO-8859-1"),"utf8")  
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舔哪,一起剝皮案震驚了整個濱河市欢顷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捉蚤,老刑警劉巖抬驴,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缆巧,居然都是意外死亡布持,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門陕悬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來题暖,“玉大人,你說我怎么就攤上這事捉超‰事保” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵拼岳,是天一觀的道長枝誊。 經(jīng)常有香客問我,道長惜纸,這世上最難降的妖魔是什么侧啼? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮堪簿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘皮壁。我一直安慰自己椭更,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布蛾魄。 她就那樣靜靜地躺著虑瀑,像睡著了一般湿滓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上舌狗,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天叽奥,我揣著相機(jī)與錄音,去河邊找鬼痛侍。 笑死朝氓,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的主届。 我是一名探鬼主播赵哲,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼君丁!你這毒婦竟也來了枫夺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤绘闷,失蹤者是張志新(化名)和其女友劉穎橡庞,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體印蔗,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扒最,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了喻鳄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扼倘。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖除呵,靈堂內(nèi)的尸體忽然破棺而出再菊,到底是詐尸還是另有隱情,我是刑警寧澤颜曾,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布纠拔,位于F島的核電站,受9級特大地震影響泛豪,放射性物質(zhì)發(fā)生泄漏稠诲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一诡曙、第九天 我趴在偏房一處隱蔽的房頂上張望臀叙。 院中可真熱鬧,春花似錦价卤、人聲如沸劝萤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽床嫌。三九已至跨释,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間厌处,已是汗流浹背鳖谈。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留阔涉,地道東北人缆娃。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像洒敏,于是被迫代替她去往敵國和親龄恋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 編碼問題一直困擾著開發(fā)人員凶伙,尤其在 Java 中更加明顯郭毕,因為 Java 是跨平臺語言,不同平臺之間編碼之間的切換...
    x360閱讀 2,470評論 1 20
  • 在還沒有接觸curl的時候函荣,相信大家在獲取網(wǎng)頁內(nèi)容的時显押,使用得最多的一個函數(shù)就是:file_get_content...
    四月不見閱讀 1,882評論 7 39
  • 一、什么是CURL傻挂? cURL 是一個利用URL語法規(guī)定來傳輸文件和數(shù)據(jù)的工具乘碑,支持很多協(xié)議,如HTTP金拒、FTP兽肤、...
    茶藝瑤閱讀 4,587評論 0 6
  • 一、什么是CURL绪抛? cURL 是一個利用URL語法規(guī)定來傳輸文件和數(shù)據(jù)的工具资铡,支持很多協(xié)議,如HTTP幢码、FTP笤休、...
    伊Summer閱讀 1,262評論 0 4
  • 最近被考試壓的停不下來了 腦子里也沒有啥可以寫的 覺得我這樣不行啊 到了考試才來抱佛腳才抱怨時間不夠→_→ 真是!...
    我有句話想和你說閱讀 198評論 0 0