Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android向服务器发送两个参数_Java_Android_Web Services_Http Get - Fatal编程技术网

Java android向服务器发送两个参数

Java android向服务器发送两个参数,java,android,web-services,http-get,Java,Android,Web Services,Http Get,大家好,我想向服务器发送两个参数 安卓id 已安装的应用程序信息 我写了一个代码来了解已安装的应用程序,并在logcat和android_id中打印,但当我尝试在服务器上发送已安装的应用程序信息时,我出现了一个错误 代码 public class MainActivity extends Activity { String AppName; String android_id; PackageInfo packageInfo; String install

大家好,我想向服务器发送两个参数

  • 安卓id
  • 已安装的应用程序信息
  • 我写了一个代码来了解已安装的应用程序,并在logcat和android_id中打印,但当我尝试在服务器上发送已安装的应用程序信息时,我出现了一个错误

    代码

        public class MainActivity extends Activity {
        String AppName;
        String android_id;
        PackageInfo packageInfo;
        String installedapps;
        StringBuilder sb;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            android_id = Secure.getString(MainActivity.this.getContentResolver(),
                    Secure.ANDROID_ID);
    
            getInstalledApps();
    
        }
    
        public void getInstalledApps() {
            List<PackageInfo> PackList = getPackageManager()
                    .getInstalledPackages(0);
    
            sb = new StringBuilder();
    
            for (int i = 0; i < PackList.size(); i++) {
    
                PackageInfo PackInfo = PackList.get(i);
    
                if (((PackInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) != true) {
                    AppName = PackInfo.applicationInfo.loadLabel(
                            getPackageManager()).toString();
                    Log.d("install ", AppName);
                    sb.append(AppName + "\"");
                }
    
            }
            Toast.makeText(getApplicationContext(), sb.toString(),
                    Toast.LENGTH_LONG).show();
    
            Log.d("install232222222 ", sb.toString());
    
            connectWithHttpGet(android_id, sb.toString());
    
        }
    
        private void connectWithHttpGet(String diviceID, String InstalledApps) {
            class HttpGetAsyncTask extends AsyncTask<String, Void, String> {
    
                @Override
                protected String doInBackground(String... params) {
                    String deviceId = params[0];
                    String list = params[1];
                    System.out.println("diviceID is :" + deviceId
                            + " InstalledApps is :" + list);
                    HttpClient httpClient = new DefaultHttpClient();
                    HttpGet httpGet = new HttpGet(
                            "http://************/api/***********.aspx?deviceId="
                                    + deviceId + "&list=" + list);
    
                    try {
    
                        HttpResponse httpResponse = httpClient.execute(httpGet);
                        System.out.println("httpResponse");
                        InputStream inputStream = httpResponse.getEntity()
                                .getContent();
                        InputStreamReader inputStreamReader = new InputStreamReader(
                                inputStream);
                        BufferedReader bufferedReader = new BufferedReader(
                                inputStreamReader);
                        StringBuilder stringBuilder = new StringBuilder();
    
                        String bufferedStrChunk = null;
                        while ((bufferedStrChunk = bufferedReader.readLine()) != null) {
                            stringBuilder.append(bufferedStrChunk);
                        }
                        System.out.println("Returning value of doInBackground :"
                                + stringBuilder.toString());
                        return stringBuilder.toString();
    
                    } catch (ClientProtocolException cpe) {
                        System.out
                                .println("Exception generates caz of httpResponse :"
                                        + cpe);
                        cpe.printStackTrace();
                    } catch (IOException ioe) {
                        System.out
                                .println("Second exception generates caz of httpResponse :"
                                        + ioe);
                        ioe.printStackTrace();
                    }
    
                    return null;
                }
    
                @Override
                protected void onPostExecute(String result) {
                    super.onPostExecute(result);
    
                    if (result.equals("working")) {
                        Toast.makeText(getApplicationContext(),
                                "HTTP GET is working...", Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(getApplicationContext(), "Invalid...",
                                Toast.LENGTH_LONG).show();
                    }
                }
            }
    
            HttpGetAsyncTask httpGetAsyncTask = new HttpGetAsyncTask();
    
            httpGetAsyncTask.execute(diviceID, InstalledApps);
    
        }
    }
    
    公共类MainActivity扩展活动{
    字符串AppName;
    字符串名称;
    PackageInfo PackageInfo;
    字符串安装apps;
    为某人做准备;
    @凌驾
    创建时受保护的void(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    android_id=Secure.getString(MainActivity.this.getContentResolver(),
    安卓(ANDROID),;
    getInstalledApps();
    }
    public void getInstalledApps(){
    List PackList=getPackageManager()
    .getInstalledPackages(0);
    sb=新的StringBuilder();
    对于(int i=0;i
    在toast消息中,我可以显示已安装的应用程序列表(
    Log.d(“install232222222”,sb.toString());
    ),但我无法将其发送到服务器

    如果我将
    connectWithHttpGet(android,sb.toString());
    更改为
    connectWithHttpGet(android,Hello”);
    则我可以在服务器上发送android和Hello,但我的问题是
    sb.toString()

    如果有人知道我的问题的解决方法,请帮助我

    谢谢

    为什么要使用

     sb.append(AppName + "\"");  
    
    没有那条线的支票

    添加这一行

      AppName.replace("\n", "");
    

    Http Get请求有maxlength限制,您的请求是否超过该限制


    我删除了这一行,它正常工作,但我如何才能在一个列表中发送此已安装的应用程序?