【问题标题】:Android httpresponse (urlencoded string) get attributeAndroid httpresponse (urlencoded string) 获取属性
【发布时间】:2019-07-09 18:33:49
【问题描述】:

使用 OAuth API 我需要检索 access_token 属性。发送登录信息工作正常,我确实得到了正确的回复。响应格式如下:

access_token=SOMETOKEN&login=SOMELOGIN&apiKey=SOMEAPIKEY

目前我收到这样的回复:

org.apache.http.HttpResponse response = httpclient.execute(httppost);
String content = convertStreamToString(response.getEntity().getContent());

第二行获取所描述的内容的字符串。所以回来的是一个 URL 编码字符串,我需要获取它的 access_token 值。但是我不确定如何执行此操作,我似乎找不到执行此操作的方法或任何东西,我是否必须对其进行解析或是否有其他方法可以执行此操作?

【问题讨论】:

    标签: android httpresponse


    【解决方案1】:

    试试URLDecoder.decode(content)

    如果这是唯一的问题,那应该可以。

    编辑:我想您已经知道这一点,并且您正在寻找更自动的东西,但以防万一。我还没有测试过。

    String[] splitted = content.split("&");
    
    //detect token
    String token;
    for(int i=0;i<splitted.length;i++){
    if(splitted[i].startsWith("token"){
     String[] tokenSplitted = splitted[i].split("=");
    token = tokenSplitted[1];
    }
    }
    

    【讨论】:

    • 不,我不需要解码它,我需要获取字符串的特定参数,它可能看起来像:access_token=n6hfcq3iio&login=username&apiKey=duksqmo98f 所以我需要提取的是 n6hfcq3iio
    【解决方案2】:

    我实际上刚刚在 Twitter Api Me (http://kenai.com/projects/twitterapime/pages/Home) StringUtil 类中找到了一个解决方案,我不会在这里粘贴它,而是它的开放源代码因此,如果有人需要它,请从那里获取。

    【讨论】:

      猜你喜欢
      • 2018-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-19
      • 2013-04-24
      • 2016-08-11
      • 1970-01-01
      • 2017-06-14
      相关资源
      最近更新 更多