目前我有两种方法可以发布一个文件,另一种方法可以发布一些文字,它们位于
之下发布数据......
public void postData() {
// Create a new HttpClient and Post Header
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
EditText et = (EditText) findViewById(R.id.entry);
String enteredName = et.getText().toString();
gender();
category();
nameValuePairs.add(new BasicNameValuePair("name",enteredName));
nameValuePairs.add(new BasicNameValuePair("gender",radio));
nameValuePairs.add(new BasicNameValuePair("cat",radio2));
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2:90/upload.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
发布文件......
public void postFile(){
File file = new File(filedir2);
try {
System.out.println(filedir2);
HttpClient client = new DefaultHttpClient();
String postURL = "http://10.0.2.2:90/mobileupload.php";
HttpPost post = new HttpPost(postURL);
FileBody bin = new FileBody(file);
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
reqEntity.addPart("image", bin);
post.setEntity(reqEntity);
HttpResponse response = client.execute(post);
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
Log.i("RESPONSE",EntityUtils.toString(resEntity));
}
} catch (Exception e) {
e.printStackTrace();
}
}
我制作了一个结合了mobileupload.php和upload.php的php文件,我只是想知道是否有一种方法可以将其转换为一种方法并只做一个帖子?
帮助将不胜感激
由于
詹姆斯
答案 0 :(得分:2)
您可以使用以下内容:
File file = new File("FileToSend.txt");
HttpClient client = new HttpClient();
String url = "http://www.yourdomain.com/destination.php";
PostMethod postMethod = new PostMethod(url);
Part[] parts = {new FilePart(file.getName(), file)};
postMethod.setParameter("name", "value"); // set parameters like this instead in separate call
postMethod.setRequestEntity( new MultipartRequestEntity(parts, postMethod.getParams()));
int status = client.executeMethod(postMethod);