2015年2月27日金曜日

[安藤]android + apache http multipart post

如果你要使用http post一次上傳檔案,檔名跟一些檔案相關文字資訊的話,
http multipart post是必經之路。很可惜白痴的,android os內建的httpclient
並沒有包含到MultipartEntity/MultipartEntityBuilder。


所以第一步是找到合用的httpclient lib來用。
apache網站上面目前的最新版4.4的lib 匯入之後雖然可以編譯,但是執行的時候會跑nosuchmethodexception.
因此請下載目前可用的最終版4.3.6。
http://archive.apache.org/dist/httpcomponents/httpclient/binary/httpcomponents-client-4.3.6-bin.zip

下面是程式碼。

HttpPost post = new HttpPost(queryString(url, null));
post.addHeader("Connection", "Keep-Alive");
post.addHeader("Charset", HTTP.UTF_8);

try {
MultipartEntityBuilder builder = MultipartEntityBuilder.create();        
    builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
    builder.setCharset(Charset.forName(HTTP.UTF_8));
    builder.addBinaryBody("file", file, ContentType.create("image/png"), file.getName());  //要傳檔案的話請這樣用。content-type要自行製作。本例的是傳png檔案。或是強制填入泛用的「binary/octet-stream」似乎也可以。反正server端的重點是拿來存檔...
    builder.addTextBody("param1", param1);
    builder.addTextBody("param2", param2);  //要傳文字參數的話請這樣用。


    post.setEntity(builder.build());
    HttpResponse response = client.execute(post);
    String serverResponse = EntityUtils.toString(response.getEntity()); //看看server回傳的是不是成功。有的server會把結果以gzip encode之後再送,請自行判斷response的encodetype。
    }
    catch (Exception e) {e.printStackTrace();}



2015年2月18日水曜日

[日本旅遊]2014-08-22 札幌-旭川-美瑛-札幌-函館(1)


早安。有個好澡堂真的很重要。昨天睡得放鬆又沈穩,起床精神舒暢。
當時完全沒有想到,今天的行程的預期跟結果有如天差地遠。

行程預定:
特08:30-10:07
午餐:蜂屋 10:30~
11:30-12:40 旭川--美瑛
  租腳踏車
16:45-18:10 富良野--新得   根室本線(新得行)
特18:19-19:46 新得--南千歲   スーパーおおぞら10号(札幌行)
特20:00-23:01 南千歲--函館   スーパー北斗18号(函館行)

選擇2
17:21-17:46 美瑛--旭川
特17:55-19:20 旭川--札幌   スーパーカムイ40号(新千歳空港行)
特19:29-23:01 札幌--函館   スーパー北斗18号(函館行)

第一個目的地是旭川蜂屋。總之出發。


早上的すすきの,跟喧囂熱鬧的夜晚的すすきの,判若兩地。路上幾乎沒人。


只看到黑貓送貨員勤奮的配送中。 ネコロジー。



昨天沒拍照的分店之一。

感受不到上班的車潮,有點不太適應。

路面電車外型真的蠻可愛。

第一次看到這種輪子的自行車,騎起來相當有彈性的感覺。





昨天的圖,應該要放在上一篇,不過忘了...就拿來這邊用。
搭地鐵回札幌車站,地鐵車內一角。搭的人還不少,不過還不至於擁擠。


地鐵札幌站也有柵欄。


看到這牌子才想起來有旭山動物園號可以搭。考慮到車廂一定會被小孩搞得吵翻天,跳過。


還是不會客滿的自由席適合我。

札幌,晚上見。

從札幌站出發後,追上即將進入千歲線的快速エアポート。

快速エアポート會停苗穗站,就直接海拋了。然後我就忘了拍...











野幌站有屋簷,亮度不足,高砂站月台在另一側沒拍到。




岩見沢站。特急停靠站。目前JR能夠用IC卡的最東站。(最北站是「北海道医療大学」站。與此站只差3KM的南北距離。)

峰延站。

光珠內站。站名由來:アイヌ語「カーウシュ・ナイ」(kausnay、獣をとる罠をしかける沢)

美唄站。站名由來:アイヌ語「ピパ=オ=イ」(カラス貝のいる所)


茶志內站。站名由來:アイヌ語の「チャシ・ナイ(砦・川)」

這邊以北就開始出現田園景色了。



奈井江站。站名由來:アイヌ語「ナイェ(その川)」。

豐沼站。

砂川站。特急停靠站。
不知原因的我忘記拍滝川站了...

江別乙站。站名由來:アイヌ語「ユベ・オツ」(チョウザメがいるところ)

田園風光。

timing的勝利。

妹背牛站。難讀站名之一。站名由來:アイヌ語「モセ・ウシ・イ」(イラクサが繁茂している所)

深川站。特急停靠站,也是留萌本線起點。

納內站。

伊納站。站名由來:アイヌ語の「イヌン・オ・ペッ」(鮭を獲るための小屋がいくつもある川)

近文站。下一站就是旭川。

旭川到了。自動改閘口的最北站。

旭山動物園的企鵝遊街太有名...

不是冬天來,看不到雪www

這個站體規模應該也是最北的大站吧?

站前商店街還不小。



竟然有冥土咖啡廳www

蜂屋的五條創始店,從車站過來大約要走10分鐘。

到的時候大約是1010。在門口等一下吧。

可惜賣光了Orz

傳說中的蜂屋拉麵。第一印象:這根本就是麻油湯麵...
在台灣吃慣麻油雞的話,應該會覺得普通到不能再普通了。 加上相當乾的肉,完全不推薦。
要是你覺得二郎算是拉麵的話,那我也承認這是拉麵好了。

受到重擊的我,失望的離開小巷。

只排了1小時的時間吃飯看來是夠了。接著往富良野前進。
下一個目標:Figure 17場景探訪。

1130的車,所以還有點時間。

連醫院的海報都這麼口愛。

利用這段時間到車站後面看看旭川的樣子。


這幾塊石頭的確有能量。摸起來熱熱的。

順便逛一下賣店。


時間差不多了,來去搭車。搭富良野線到美馬牛站。到美馬牛站有兩個原因:
一是Figure17最重要的場景:美馬牛小學校在這裡,二是這裡有一家唯一有出租電動登山腳踏車的店。富良野周圍都是丘陵,高低落差大。沒有電動補助的話請確定你有足夠的體力。

...有電線架?這附近有跑電車!?

在這邊還順便等了遲到的接駁車輛。結果出發時間晚了約7分鐘。

神楽岡站。站名由來:アイヌ語の「ヘッチュイ・ウシ」

緑が丘站。

西御料站。

西瑞穗站。

西神楽站。站名由來:アイヌ語「ヘッチェ・ウシ(囃子をするところ)」

整面的稻田!

西聖和站。

種滿了...浦公英!?

千代ヶ岡站。最接近旭川機場的站。不過這次沒時間所以放棄。
不知道wiki上面寫的2015/02/28 殺頭-旭川停飛是只有長榮還是連全日空都沒了...

車站建物。

很有歐洲的感覺。

北美瑛站。

美瑛站。也是Figure17的重要場景。先暫時略過,等回程再來探訪。

美瑛站前一拍。

接著是28.6‰的鐵路坡道。

怎麼拍都是美景。

美馬牛站到了。站名由來:アイヌ語の「ピパ・ウシ」(沼貝がいるところ)

目送列車離開。

本篇先到此。本日的第二個目標:Figure17的微聖地探訪即將在下篇開始。