Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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 Dependency org.apache.httpcomponents:httpclient:4.5在调试时被忽略,因为它可能与提供的内部版本冲突_Java_Android_Httpclient_Http Response Codes - Fatal编程技术网

Java Dependency org.apache.httpcomponents:httpclient:4.5在调试时被忽略,因为它可能与提供的内部版本冲突

Java Dependency org.apache.httpcomponents:httpclient:4.5在调试时被忽略,因为它可能与提供的内部版本冲突,java,android,httpclient,http-response-codes,Java,Android,Httpclient,Http Response Codes,我试图上传一个图像到服务器。因为我是android的新手,所以我尝试使用其他代码 这是我的错误: 这是我的活动文件:- import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.content.pm.PackageManager; import android.database.Cursor; import android.graphi

我试图上传一个图像到服务器。因为我是android的新手,所以我尝试使用其他代码

这是我的错误:

这是我的活动文件:-

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {

    Button btpic, btnup;
    private Uri fileUri;
    String picturePath;
    Uri selectedImage;
    Bitmap photo;
    String ba1;
    public static String URL = "http://127.0.0.1/image.php";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btpic = (Button) findViewById(R.id.cpic);
        btpic.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                clickpic();
            }
        });

        btnup = (Button) findViewById(R.id.up);
        btnup.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                upload();
            }
        });
    }

    private void upload() {
        // Image location URL
        Log.e("path", "----------------" + picturePath);

        // Image
        Bitmap bm = BitmapFactory.decodeFile(picturePath);
        ByteArrayOutputStream bao = new ByteArrayOutputStream();
        bm.compress(Bitmap.CompressFormat.JPEG, 90, bao);
        byte[] ba = bao.toByteArray();
        ba1 = Base64.encodeToString(ba,Base64.DEFAULT);

        Log.e("base64", "-----" + ba1);

        // Upload image to server
        new uploadToServer().execute();

    }

    private void clickpic() {
        // Check Camera
        if (getApplicationContext().getPackageManager().hasSystemFeature(
                PackageManager.FEATURE_CAMERA)) {
            // Open default camera
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);

            // start the image capture Intent
            startActivityForResult(intent, 100);

        } else {
            Toast.makeText(getApplication(), "Camera not supported", Toast.LENGTH_LONG).show();
        }
    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == 100 && resultCode == RESULT_OK) {

            selectedImage = data.getData();
            photo = (Bitmap) data.getExtras().get("data");

            // Cursor to get image uri to display

            String[] filePathColumn = {MediaStore.Images.Media.DATA};
            Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            picturePath = cursor.getString(columnIndex);
            cursor.close();

            Bitmap photo = (Bitmap) data.getExtras().get("data");
            ImageView imageView = (ImageView) findViewById(R.id.Imageprev);
            imageView.setImageBitmap(photo);
        }
    }

    public class uploadToServer extends AsyncTask<Void, Void, String> {

        private ProgressDialog pd = new ProgressDialog(MainActivity.this);
        protected void onPreExecute() {
            super.onPreExecute();
            pd.setMessage("Wait image uploading!");
            pd.show();
        }

        @Override
        protected String doInBackground(Void... params) {

            ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("base64", ba1));
            nameValuePairs.add(new BasicNameValuePair("ImageName", System.currentTimeMillis() + ".jpg"));
            try {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(URL);
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                HttpResponse response = httpclient.execute(httppost);
                String st = EntityUtils.toString(response.getEntity());
                Log.v("log_tag", "In the try Loop" + st);

            } catch (Exception e) {
                Log.v("log_tag", "Error in http connection " + e.toString());
            }
            return "Success";

        }

        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            pd.hide();
            pd.dismiss();
        }
    }}
导入android.app.Activity;
导入android.app.ProgressDialog;
导入android.content.Intent;
导入android.content.pm.PackageManager;
导入android.database.Cursor;
导入android.graphics.Bitmap;
导入android.graphics.BitmapFactory;
导入android.net.Uri;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.provider.MediaStore;
导入android.support.v7.app.AppActivity;
导入android.util.Base64;
导入android.util.Log;
导入android.view.view;
导入android.widget.Button;
导入android.widget.ImageView;
导入android.widget.Toast;
导入org.apache.http.HttpResponse;
导入org.apache.http.NameValuePair;
导入org.apache.http.client.HttpClient;
导入org.apache.http.client.entity.UrlEncodedFormEntity;
导入org.apache.http.client.methods.HttpPost;
导入org.apache.http.impl.client.DefaultHttpClient;
导入org.apache.http.message.BasicNameValuePair;
导入org.apache.http.util.EntityUtils;
导入java.io.ByteArrayOutputStream;
导入java.util.ArrayList;
公共类MainActivity扩展了AppCompatActivity{
按钮btpic,btnup;
私有Uri文件Uri;
字符串图片路径;
Uri选择图像;
位图照片;
字符串ba1;
公共静态字符串URL=”http://127.0.0.1/image.php";
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btpic=(按钮)findViewById(R.id.cpic);
btpic.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
点击pic();
}
});
btnup=(按钮)findViewById(R.id.up);
btnup.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
上传();
}
});
}
私有无效上载(){
//图像位置URL
Log.e(“路径”、“-----------------------”+图片路径);
//形象
位图bm=BitmapFactory.decodeFile(picturePath);
ByteArrayOutputStream bao=新建ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG,90,bao);
字节[]ba=bao.toByteArray();
ba1=Base64.encodeToString(ba,Base64.DEFAULT);
Log.e(“base64”,“----”+ba1);
//将图像上载到服务器
新建uploadToServer().execute();
}
私有void clickpic(){
//检查摄像机
如果(getApplicationContext().getPackageManager().hasSystemFeature(
包装管理器功能(摄像头){
//打开默认摄影机
意向意向=新意向(MediaStore.ACTION\u IMAGE\u CAPTURE);
intent.putExtra(MediaStore.EXTRA_输出,fileUri);
//启动图像捕获计划
startActivityForResult(意向,100);
}否则{
Toast.makeText(getApplication(),“不支持摄像头”,Toast.LENGTH_LONG.show();
}
}
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
if(requestCode==100&&resultCode==RESULT\u确定){
选择edimage=data.getData();
photo=(位图)data.getExtras().get(“数据”);
//光标以获取要显示的图像uri
字符串[]filePathColumn={MediaStore.Images.Media.DATA};
Cursor Cursor=getContentResolver().query(selectedImage,
filePathColumn,null,null,null);
cursor.moveToFirst();
int columnIndex=cursor.getColumnIndex(filePathColumn[0]);
picturePath=cursor.getString(columnIndex);
cursor.close();
位图照片=(位图)数据.getExtras().get(“数据”);
ImageView ImageView=(ImageView)findViewById(R.id.Imageprev);
设置图像位图(照片);
}
}
公共类uploadToServer扩展异步任务{
private ProgressDialog pd=新建ProgressDialog(MainActivity.this);
受保护的void onPreExecute(){
super.onPreExecute();
设置消息(“等待图像上传!”);
pd.show();
}
@凌驾
受保护字符串doInBackground(无效…参数){
ArrayList nameValuePairs=新的ArrayList();
添加(新的BasicNameValuePair(“base64”,ba1));
添加(新的BasicNameValuePair(“ImageName”,System.currentTimeMillis()+“.jpg”);
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(URL);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
HttpResponse response=httpclient.execute(httppost);
字符串st=EntityUtils.toString(response.getEntity());
Log.v(“Log_标记”,“在try循环中”+st);
}捕获(例外e){
Log.v(“Log_标记”,“http连接错误”+e.toString());
}
返回“成功”;
}
受保护的void onPostExecute(字符串结果){
super.onPostExecute(结果);
pd.hide();
pd.解散();
}
}}
渐变页:

如果您将目标sdk用作
23

然后在
build.gradle中添加:

    android
    {
         useLibrary  'org.apache.http.legacy'
    }
因为ApacheHTTP随着棉花糖的到来而被弃用

根据这个问题,不要使用这些gradle文件,因为它们看起来已经坏了

compile 'org.apache.httpcomponents:httpcore:4.4.1'
compile 'org.apache.httpcomponents:httpclient:4.5'
compile 'org.apache.httpcomponents:httpclient-android:4.3.5.1'
希望有帮助

方式1:

您需要在build.gradle中使用

android{
   useLibrary  'org.apache.http.legacy'
}
如果您使用最新版本的android SDK

方式2:

使用HttpU