Java Dependency org.apache.httpcomponents:httpclient:4.5在调试时被忽略,因为它可能与提供的内部版本冲突
我试图上传一个图像到服务器。因为我是android的新手,所以我尝试使用其他代码 这是我的错误: 这是我的活动文件:-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
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