如题:要做一个自动更新程序。
现在遇到的问题是,从java服务器端发送压缩包流,vb.net端得到流偏小。
试了传输txt,jpg都没有问题。
java代码
@RequestMapping(value = "/getProgram")
public void getProgram(HttpServletRequest req, HttpServletResponse res) {
try {
FileInputStream fis = new FileInputStream("d://bbb.zip");
byte[] buf=new byte[fis.available()];
fis.read(buf);
fis.close();
// res.setCharacterEncoding("UTF-8");
res.setContentType("application/ostet-stream");
res.setContentLength(buf.length);
OutputStream os = res.getOutputStream();
os.write(buf);
os.flush();
os.close();
} catch (Exception e) {
logger.error(e.getMessage());
}
}
VB.NET 代码
Public Sub PostData2(ByVal url As String)
Try
ServicePointManager.Expect100Continue = False
Dim request As HttpWebRequest = WebRequest.Create(url)
request.Method = "POST"
request.ContentType = "application/ostet-stream"
request.GetRequestStream()
Dim stream As Stream = request.GetResponse().GetResponseStream()
Dim zipPath As String = programPath + "\aaa.zip"
Dim streamReader As New StreamReader(stream)
Dim sw As StreamWriter = New StreamWriter(zipPath, False, New UTF8Encoding(False))
Dim buffer() As Byte = Encoding.ASCII.GetBytes(streamReader.ReadToEnd)
sw.Write(System.Text.Encoding.UTF8.GetString(buffer))
'For i As Integer = 0 To buffer.Length - 1
' sw.Write(buffer(i))
'Next
'sw.Write(streamReader.ReadToEnd)
sw.Flush()
sw.Close()
stream.Dispose()
stream.Close()
Catch ex As Exception
setLog("PostData", ex.Message)
End Try
End Sub