【发布时间】:2011-09-07 10:32:32
【问题描述】:
您好,我正在使用HttpPost 和HttpRequest 连接到服务器并获取结果。我将结果作为字符串并尝试将其转换为byte[]。但是当我这样做时,我得到的String 和byte[] 的结果是不同的。我该如何解决?
这是我正在使用的代码:
public class TestProjectActivity extends Activity {
Button cancel,login;
HttpClient httpclient;
HttpPost httppost;
ArrayList<NameValuePair> postParameters;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
httpclient = new DefaultHttpClient();
httppost = new HttpPost("http://www.rpc.example.com");
postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("username_hash", "c34a6cf6bff9f6b61e96fdf4bf360157d522a17c"));
postParameters.add(new BasicNameValuePair("password_hash", "56dc55f0062cf21797637b0f8652293023f2ef22"));
cancel = (Button) findViewById(R.id.cancel_login_btn);
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
login = (Button) findViewById(R.id.login_btn);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
httppost.setEntity(new UrlEncodedFormEntity(postParameters));
HttpResponse response = httpclient.execute(httppost);
String responseBody = EntityUtils.toString(response.getEntity()); //response
byte[] b = responseBody.getBytes();
Log.e("Packet","Response packet : "+b); //print packet
Log.e("Packet","Response packet : "+responseBody); //print packet
} catch (Exception e) {
e.printStackTrace();
Log.d("ERROR"," Error lol - "+e);
}
}
});
}
}
字符串的结果是:Response packet : 00000000000000000000000000000001002001ec8ce6abb3e952a85b8551ba726a122700000000000000000000000000000002000000000000000000000000000001162c1c0624f7a2b272e05c4d997473a8e6001eyJsb2NhbGUiOiJlbl9VUyIsImlkIjoyLCJlcnJvcl9jb2RlIjo2MDAzLCJlcnJvcl9zdHJpbmciOiJVbnN1cHBvcnRlZCBDbGllbnQgVmVyc2lvbiJ9
byte[] 的结果是:Response packet : [B@462d93c0
【问题讨论】:
-
字节不是字符串,字符串不是字节,所以两者不能相同
标签: android byte http-post httprequest