如何使用POST解析服务器上传图片
问题描述:
我必须使用HTTP Post请求上传我的图片。图像将张贴到parse server如何使用POST解析服务器上传图片
我发现这个文档,但我不知道如何停止上传图像。请帮帮我。我有一个http请求方法,请纠正我。
这里是文档。 https://www.parse.com/docs/rest#files
public boolean uploadingFiles (String tempFilePath) {
String filePath = null ;
String fileName = null ;
boolean flag = false ;
try {
filePath = tempFilePath ;
fileName = new String (filePath) ;
fileName = filePath.substring (filePath.lastIndexOf ("/") + 1 , filePath.length ()) ;
} catch (Exception e) {
Log.e ("Exception" , "uploadingFiles Message = " + e.toString ()) ;
}
HttpClient httpclient = new DefaultHttpClient () ;
try {
HttpPost httppost = new HttpPost ("https://api.parse.com/1/files/") ;
StringBody filename = new StringBody (fileName) ;
File f = new File (filePath) ;
FileBody bin = new FileBody (f) ;
MultipartEntity reqEntity = new MultipartEntity () ;
reqEntity.addPart ("X-Parse-Application-Id" , new StringBody("MY KEY")) ;
reqEntity.addPart ("X-Parse-REST-API-Key" , new StringBody("My KEY")) ;
reqEntity.addPart ("Content-Type:" , new StringBody("image/png")) ;
reqEntity.addPart ("file:" , bin) ;
httppost.setEntity (reqEntity) ;
System.out.println ("executing request " + httppost.getRequestLine ()) ;
HttpResponse response = httpclient.execute (httppost) ;
HttpEntity resEntity = response.getEntity () ;
System.out.println ("----------------------------------------") ;
System.out.println (response.getStatusLine ()) ;
if (resEntity != null) {
System.out.println ("Response content length: " + resEntity.getContentLength ()) ;
InputStream is = resEntity.getContent () ;
if (is != null) {
Writer writer = new StringWriter () ;
char [ ] buffer = new char [ 1024 ] ;
try {
Reader reader = new BufferedReader (new InputStreamReader (is , "UTF-8")) ;
int n ;
while ((n = reader.read (buffer)) != - 1) {
writer.write (buffer , 0 , n) ;
}
} finally {
is.close () ;
}
String serverResult = writer.toString () ;
System.out.println ("Response content: " + serverResult) ;
} else {
System.out.println ("Response nothing: ") ;
}
}
EntityUtils.consume (resEntity) ;
} catch (Exception e) {
e.printStackTrace () ;
} finally {
try {
httpclient.getConnectionManager ().shutdown () ;
} catch (Exception ignore) {
}
}
return flag ;
}
答
这是我目前使用
try
{
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 100, bos);
byte[] data = bos.toByteArray();
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, timeout);
HttpConnectionParams.setSoTimeout(httpParameters, timeout);
HttpClient httpClient = new DefaultHttpClient(httpParameters);
HttpPost postRequest = new HttpPost(URL_SEND);
ByteArrayBody bab = new ByteArrayBody(data, "Feest" + pad(random.nextInt(9999) + 1) + ".jpg");
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
reqEntity.addPart("Filedata", bab);
reqEntity.addPart("dropboxId", new StringBody(URLEncoder.encode(uid)));
postRequest.setEntity(reqEntity);
HttpResponse response = httpClient.execute(postRequest);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String sResponse;
StringBuilder s = new StringBuilder();
while((sResponse = reader.readLine()) != null)
{
s = s.append(sResponse);
}
if(d) Log.i(E, "Send response:\n" + s);
}
catch (Exception e)
{
if(d) Log.e(E, "Error while sending: " + e.getMessage());
return ERROR;
}
+0
嗨@user你能否提供一些更详细的代码.. – sandy 2012-11-05 13:24:27
嗨@Arslan贵的问题得到解决。 – sandy 2012-11-05 13:23:45