java http post 如何同时发送文件流与数据??
又如何接收呢?
只发送文件接收是用request.getInputStream();获取文件流
如果文件和数据同时发送是否可行?又如何接收?
数据为json串.
求个例子,发送与接收,谢谢。
æ¨å¥½ï¼æé®è
ï¼
é¦å
表åãæ件åæ¶åéé£ä¹è¯å®æ¯å¯ä»¥çï¼å
³äºè·åçè¯å¾é¾äºï¼å 为åéæ件çè¯formå¿
须设置为ï¼multipart/form-dataæ°æ®æ ¼å¼ï¼é»è®¤ä¸ºï¼application/x-www-form-urlencoded表åæ ¼å¼ãæ们称ä¹ä¸ºäºè¿å¶æµåæ®éæ°æ®æµã
åæ说äº<formçentypeè¦æ¹ä¸ºmultipart/form-dataæè½è¿è¡åéæ件ï¼é£ä¹è¿ä¸ªæ¶åä½ è¡¨åçå¦å¤æ°æ®å°±ä¹ä¼è¢«å½æäºè¿å¶ä¸èµ·åéå°æå¡ç«¯ã
è·å读åè¿æ¥çå 容å¦ä¸ï¼
//æ¿å°ç¨æ·ä¼ éè¿æ¥çåèæµInputStream is = request.getInputStream();
byte[] b = new byte[1024];
int len = 0;
while((len = is.read(b)) != -1){
System.out.println(new String(b,0,len));
}
ä¸é¢å¦å¾ç代ç ï¼æ们åç°åéè¿æ¥ç表åæ°æ®è·æ件æ°æ®æ¯æ··ä¹±çï¼æä»¬æ ¹æ¬æ²¡åæ³è§£æ(å¾éº»ç¦)ï¼è¿ä¸ªæ¶åæ们就éè¦ç¨å°ç¬¬ä¸æ¹è¾
å©(apache æä¾çfileupload.jar)æ¥è¿è¡è·åã
è¿ä¸ªç½ä¸æå¾å¤ä»£ç çï¼å¦ææä»ä¹ä¸æç½å¯ä»¥å»èªè¡ç¾åº¦ï¼æè
追é®ï¼æè¿éåªæ¯ç»ä½ æä¾çæè·¯ï¼å¸æç解ï¼è°¢è°¢ï¼
postData += ("&hashcode=" + GetMD5String(pwd));
byte[] data = System.Text.Encoding.UTF8.GetBytes(postData);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("url");
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";//定义文件流形式,这个就是流的类型。
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
// 发送数据
newStream.Write(data, 0, data.Length);
newStream.Close();
// 接收
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
string content = reader.ReadToEnd();