java - Android Java - 将 HttpPost 结果转换为 byte[]

标签 java android byte http-post http-response-codes

我正在尝试从服务器获取 HttpPost 结果并将其转换为字节数组,并从 byte[] 获取特定字节。现在我正在使用这段代码并且它正在工作。我需要把它改成我想做的。这是代码:

public class UserLogin extends Activity {

    Button cancel,login;
    HttpClient httpclient;
    HttpPost httppost;
    ArrayList<NameValuePair> postParameters;
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        httpclient = new DefaultHttpClient();
        httppost = new HttpPost("http://www.rpc.test.com");

        postParameters = new ArrayList<NameValuePair>();
        //postParameters.add(new BasicNameValuePair("new_auth_data","1"));
        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);
                    Log.d("Login", "Response " + response.getEntity());

                    String responseBody = EntityUtils.toString(response.getEntity());
                    byte[] b = responseBody.getBytes();
                    // here




                    new AlertDialog.Builder( UserLogin.this )
                    .setTitle( "Warning" )
                    .setMessage( responseBody )
                    .setPositiveButton( "Ok", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            Log.d("AlertDialog", "Positive");
                        }
                    })
                    .show();

                } catch (Exception e) {
                    Log.d("ERROR"," Error lol - "+e);
                }

            }
        });
    }
}

作为此 HttpPost 的结果,我得到了一个字符串,我需要将其转换为字节,并从中获取特定的字节。比如从 15 元素开始到 25 或类似的东西。有什么建议吗?

提前感谢所有建议和帮助。

最佳答案

从数组中提取子数组是通过 arrayCopy http://developer.android.com/reference/java/lang/System.html#arraycopy%28java.lang.Object,%20int,%20java.lang.Object,%20int,%20int%29 完成的

对于元素 15 到 25:

byte[] subarray = new byte[25-15];
System.arrayCopy(b, 15, subarray, 0, subarray.length);

关于java - Android Java - 将 HttpPost 结果转换为 byte[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330948/

相关文章:

java - 从 JAX-RS 1.x 迁移到 2.x( Jersey )- 将 QueryParams 设置为 map ?

Android byte[] 到 Camera.onPreviewFrame 中的图像

java - 在 Java CLI 应用程序中屏蔽密码

java - 无法检索 native 文件 ffmpeg-amd64.exe

android - 从服务调用 setVolumeControlStream

java - 显示启动画面直到应用加载完成

android - 与 Tomcat servlet 交互的类

java - Java中字节数组的空闲内存

R 2.14字节编译——性能提升了多少

java - 使用 UnfoldingMaps 绘制到 PGraphics