• 请不要在回答技术问题时复制粘贴 AI 生成的内容
gamexg
V2EX  ›  程序员

之前用 python ,现在临时学 android 写应用,觉得 java 好死板啊。一个 http post json 请求, python 几行的事, java 20 行才只是完成 http 部分... json 解析又得好多行...

  •  
  •   gamexg · Feb 23, 2015 · 7143 views
    This topic created in 4272 days ago, the information mentioned may be changed or developed.
    HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(url);
    
                try {
                    httppost.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
    
                    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
                    nameValuePairs.add(new BasicNameValuePair("*", *));
                    nameValuePairs.add(new BasicNameValuePair("*", *));
                    nameValuePairs.add(new BasicNameValuePair("*", *));
                    nameValuePairs.add(new BasicNameValuePair("*", *));
                    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,HTTP.UTF_8));
    
                    HttpResponse response;
                    String result = null;
                    response = httpclient.execute(httppost);
    
    
                    if (response.getStatusLine().getStatusCode() == 200) {
    
                        HttpEntity entity = response.getEntity();
                        result = EntityUtils.toString(entity, HTTP.UTF_8);
                    }
                    Log.i(TAG, "result:" + result);
                    return result;
    
    
                } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    
    Supplement 1  ·  Feb 23, 2015
    搜索发现了 apache HttpClient4.2 Fluent API 很舒服,自己仿着封装一个。奇怪 android 就是用的 apache HttpClient ,但是却没有 Fluent API ,可能是版本旧。

    android 和后台通信的地方还不少,全部用原来的写法能烦死了。
    27 replies  •  2015-02-25 03:43:09 +08:00
    funky
    funky
    Feb 23, 2015❤️1
    1
    易读性与代码长度的取舍。
    njulzp
    njulzp
    Feb 23, 2015❤️1
    2
    用 c 试试
    Mirana
    Mirana
    Feb 23, 2015❤️1
    3
    用继承或者代理模式
    ozking
    ozking
    Feb 23, 2015❤️1
    4
    请自行搜索library再来吐槽
    lincanbin
    lincanbin
    Feb 23, 2015❤️2
    5
    不封装怪谁啊?
    像大学生初学C语言,会花个几百行来实现一个introsort,你说python一行sort就实现了然后把C语言批判一番?
    Rocko
    Rocko
    Feb 23, 2015 via Android❤️2
    6
    你这是在走路,请找个代步工具。
    mthli
    mthli
    Feb 23, 2015 via Android❤️2
    7
    gamexg
    gamexg
    OP
    Feb 23, 2015
    8
    retrofit 看着更厉害。

    感谢大家,先离开下,回来后细看。
    fashioncj
    fashioncj
    Feb 23, 2015
    9
    这个也就是一次完成的东西。
    fankay
    fankay
    Feb 23, 2015 via Android
    10
    你可以试试okhttp
    sandideas
    sandideas
    Feb 23, 2015
    11
    @lincanbin C也有qsort
    wdlth
    wdlth
    Feb 23, 2015❤️1
    12
    表面上你用Python是几行,但是Python实现这个功能得写多少行?这是前人栽树,后人乘凉。
    Troevil
    Troevil
    Feb 23, 2015
    13
    java 封装完不也是一两行的事
    MASAILA
    MASAILA
    Feb 23, 2015 via Android
    14
    http://loopj.com/android-async-http/
    我比较喜欢用这个
    kzzhr
    kzzhr
    Feb 23, 2015
    15
    首先要学会java程序员的思维。。。

    不是想黑,只是说一下场景下的区别:
    我们现在需要一个把一个单词转大写
    C程序员:枚举修改就好了
    Java程序员:找包啊!
    我们现在需要排个序
    C程序员:快排分分钟搞定
    Java程序员:找包啊!
    zhengkai
    zhengkai
    Feb 23, 2015❤️1
    16
    Java 是典型的码农语言,就是主要为了给管事的看的,而不是为了给干活的写的

    偶尔饭后闲扯,有同事是精通 Java、能从字节码 debug 的,跟我说,你敢说我大 Java 不好?!我说这个语言,要是让二三十个人去写,你定义好接口,那二三十个人填空,你肯定觉得 Java 是非常好的语言,但大部分写 Java 的都是那二三十个人里头的,我之前在一个公司呆过几个月,那里大部分人都是干了很多年对日外包,说他们的工作量可以精确到小时的,在我看来这真的是流水线的工人,干了好多年,还什么都不知道,只会填空。同事听完想了想,说从你这个角度说是对的
    pandada8
    pandada8
    Feb 23, 2015
    17
    @kzzhr Python: 内置啊(笑
    petercai
    petercai
    Feb 23, 2015 via Android
    18
    有个玩意儿叫Jython
    msg7086
    msg7086
    Feb 23, 2015
    19
    @pandada8 Ruby: →_→
    lch21
    lch21
    Feb 23, 2015❤️1
    20
    当年学X Window编程,200多行开了个窗口,打印了一行Hello world,激动得热泪盈眶
    tuoxie007
    tuoxie007
    Feb 23, 2015
    21
    吐槽Java有个蛋用呢,去Google楼下举牌子啊
    Tiande
    Tiande
    Feb 23, 2015 via iPhone
    22
    @zhengkai 高级搬砖工的感觉…
    fatea
    fatea
    Feb 23, 2015 via iPhone
    23
    用Volley啊,现在官方教程都提这个。
    fatea
    fatea
    Feb 23, 2015 via iPhone
    24
    像楼主例子里面的小数据不用Volley干嘛呢?什么都不用管,也不用考虑线程了。
    schezuk
    schezuk
    Feb 24, 2015
    25
    想起几年前在书店里看见的《Win32ASM编程》了……
    还有纯C用Win32 SDK写Form
    miao1007
    miao1007
    Feb 24, 2015❤️1
    26
    Volley ,Retrofit, async-http都是很好的库。

    总的来说就是就是 布置项目 -> 找开源 - > 找包 -> 修改 -> 完事
    andybest
    andybest
    Feb 25, 2015
    27
    @MASAILA 这几天没上QQ吗?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1263 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 110ms · UTC 21:45 · PVG 05:45 · LAX 13:45 · JFK 16:45
    ♥ Do have faith in what you're doing.