這個問題似乎很愚蠢,但我不想犯一個錯誤。如標題所述,我想用post方法將多個字段發送給WS。簡單來說,一個標題(一個字符串)和一個圖像。 到目前爲止,我已經成功發送了圖像(在很多麻煩之後)。從android發送多個值httpPost到WCF服務
下面是Android代碼:
String urlServer = GlobalSession.IP + "insert_reportByte";
URL url = new URL(urlServer);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.setRequestMethod("POST");
connection.setRequestProperty("Connection", "Keep-Alive");
connection.setRequestProperty("Content-Type","multipart/form-data");
DataOutputStream outputStream = new DataOutputStream(
connection.getOutputStream());
outputStream.write(outputByteArray, 0, outputByteArray.length);
Log.d("Report", " Amount of data sent for the picture: " + outputByteArray.length);
int serverResponseCode = connection.getResponseCode();
String serverResponseMessage = connection.getResponseMessage();
outputStream.flush();
outputStream.close();
是sucessfuly發送圖片(outputByteArray)將下列WS:
public void insert_reportByte(Stream input)
{
MyEntities entities = new MyEntities();
byte[] image = new byte[30*1024];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = input.Read(image, 0, image.Length)) > 0)
{
ms.Write(image, 0, read);
}
}
String base64stringimage = System.Convert.ToBase64String(image,0,image.Length);
entities.insert_report("name hard coded", base64stringimage);
}
所以,我想從delcaration切換到public void insert_reportByte(String name, Stream input)
。如何做?或者我必須發送流中的所有內容,然後逐個恢復傳輸的參數?
感謝提示!