在单独的字符串中获取 HTTP 响应


getting http response in separate strings

我已经将经度和纬度存储在数据库中,并以单个字符串的形式通过http请求获取它们。现在,我想启动一个地图活动,该活动从服务器响应中获取经度和纬度,并在该点放置标记。问题是我无法了解如何分离经度和纬度,因为它们是从服务器以单个字符串返回的。这是我的活动:

public class Signin extends AsyncTask<String,Void,String> 
{
  private Context context;
  private TextView roleField;
  private Context context1;
  public Signin(Context context) {
    this.context = context;
  }
  protected void onPreExecute() {}
  @Override
  protected String doInBackground(String... arg0) {
    try {
      String bus_id = (String) arg0[0];
      String link = "http://mysystem_ip/routes.php?bus_id=" + bus_id + "";
      URL url = new URL(link);
      HttpClient client = new DefaultHttpClient();
      HttpGet request = new HttpGet();
      request.setURI(new URI(link));
      HttpResponse response = client.execute(request);
      BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
      StringBuffer sb = new StringBuffer("");
      String line = "";
      while ((line = in.readLine()) != null) {
        sb.append(line);
        break;
      }
      in.close();
      return sb.toString();
    }
    catch (Exception e) {
      return new String("Exception: " + e.getMessage());
    }
  }
  @Override
  protected void onPostExecute(String result) {
    this.roleField.setText(result);
    Intent i1 = new Intent (context, MapsActivity.class);
    i1.putExtra("result",result);
    context.startActivity(i1);
  }
}

拆分此字符串的快速而肮脏的方法如下所示:

String response = "31.578369901154527 74.35708886792317";
String[] responseParts = response.split(" ");
String firstPart = responseParts[0];
String secondPart = responseParts[1];
Log.d("SPLIT RESPONSE", "first: "+firstPart+"  second: "+secondPart);

当然,这段代码假设分隔字符串两部分的分隔符是一个空格" " - 只要它不会改变,你应该能够使用上面的代码非常轻松地拆分响应字符串。