android代码读取服务器,如何在Android中读取文件上传的服务器响应...

我有这个代码将文件上传到我们的服务器(PHP).如何读取服务器的输出,而不仅仅是代码200或“ok”,而是实际的JSON响应?

我见过使用InputStreamReader和BufferedReader的例子,但我不知道如何使用它们……

public String uploadFile(){

String result = "Result:";

HttpURLConnection connection = null;

DataOutputStream outputStream = null;

DataInputStream inputStream = null;

String pathToOurFile = "/storage/emulated/0/My Documents/My Recordings/Voice0007.aac";

String lineEnd = "\r\n";

String twoHyphens = "--";

String boundary = "*****";

int bytesRead, bytesAvailable, bufferSize;

byte[] buffer;

int maxBufferSize = 1*1024*1024*1024;

try

{

FileInputStream fileInputStream = new FileInputStream(new File(pathToOurFile) );

URL url = new URL(SERVER_URL);

connection = (HttpURLConnection) url.openConnection();

// Allow Inputs & Outputs.

connection.setDoInput(true);

connection.setDoOutput(true);

connection.setUseCaches(false);

// Set HTTP method to POST.

connection.setRequestMethod("POST");

connection.setRequestProperty("Connection", "Keep-Alive");

connection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);

outputStream = new DataOutputStream( connection.getOutputStream() );

outputStream.writeBytes(twoHyphens + boundary + lineEnd);

outputStream.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + pathToOurFile +"\"" + lineEnd);

outputStream.writeBytes(lineEnd);

bytesAvailable = fileInputStream.available();

bufferSize = Math.min(bytesAvailable, maxBufferSize);

buffer = new byte[bufferSize];

// Read file

bytesRead = fileInputStream.read(buffer, 0, bufferSize);

while (bytesRead > 0){

outputStream.write(buffer, 0, bufferSize);

bytesAvailable = fileInputStream.available();

bufferSize = Math.min(bytesAvailable, maxBufferSize);

bytesRead = fileInputStream.read(buffer, 0, bufferSize);

}

outputStream.writeBytes(lineEnd);

outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

//inputStream = (DataInputStream) connection.getInputStream();

// Responses from the server (code and message)

int serverResponseCode = connection.getResponseCode();

// doesn't show the JSON respnse :(

String serverResponseMessage = connection.getResponseMessage();

String line = "";

while ((line = bufferReader.readLine()) != null) {

Log.d("Test", line);

}

bufferReader.close();

fileInputStream.close();

outputStream.flush();

outputStream.close();

result = serverResponseCode + "-"+ serverResponseMessage;

}

catch (Exception ex)

{

result = "exception: "+(ex.getStackTrace().toString()) + "\n" + ex.toString();

}finally{

return result;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值