[問題] Socket發送Http Post Entity

看板AndroidDev作者 (XD)時間12年前 (2014/02/14 03:43), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
今天想用http POST方法發送xml格式的entity 用HttpClient幾行就很容易可以達成 但換成Socket實驗看看時,讀取的結果卻很神奇,一直只抓到一行系統其他程序的資訊 例如[ 02-14 03:35:57.772 16999:16999 I/Adreno-EGL ] 這樣 想請問板友 可能是哪裡出的問題呢? SocketFactory socketFactory = SocketFactory.getDefault(); Socket socket = socketFactory.createSocket(); SocketAddress address = new InetSocketAddress("tw.quote.finance.yahoo.net" , 80); socket.connect(address, 2500); OutputStream socketOutputStream = socket.getOutputStream(); //設定header socketOutputStream.write("POST /quote/query HTTP/1.1\\r\\n".getBytes()); socketOutputStream.write("Host: tw.quote.finance.yahoo.net\\r\\n".getBytes()); socketOutputStream.write("Accept: */*\\r\\n".getBytes()); socketOutputStream.write("Content-Length:708\\r\\n".getBytes()); socketOutputStream.write("\\r\\n".getBytes()); //設定xml檔案entity socketOutputStream.write(("<SOAP-ENV:Envelope xmlns:xsd=\"http://www.w3.org/ 2001/XMLSchema\" xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"" rel="nofollow">http://www.w3.org/2001/XMLSchema-instance\"><SOAP-ENV:Header> <ns0:MLSoapHeader xmlns:ns0=\"http://ws.money-link.com.tw/\"><ns0:Name xsi:ty pe=\"xsd:string\">Iss9E4SfRLo=</ns0:Name><ns0:PassWord xsi:type=\"xsd:string\"> wGYJkPbHiDpeJYtXBk3sLw==</ns0:PassWord></ns0:MLSoapHeader></SOAP-ENV:Header><SO AP-ENV:Body><ns0:getQuote xmlns:ns0=\"http://DefaultNamespace\" SOAP-ENV:encodi ngStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"><strSymbolID xsi:type=\"x sd:string\">1201</strSymbolID><strQuoteType xsi:type=\"xsd:string\">d</strQuote Type></ns0:getQuote></SOAP-ENV:Body></SOAP-ENV:Envelope>").getBytes()); socketOutputStream.flush(); StringBuilder builder = new StringBuilder(); InputStream socketInputStream = socket.getInputStream(); BufferedReader in = new BufferedReader(new InputStreamReader(socketInputStrea m)); StringBuffer response = new StringBuffer(); int result; while (socketInputStream.available() > 0) { result = in.read(); response.append(Character.toChars(result)); } Log.d("Socket Post Response:", response.toString()); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.171.167.98
文章代碼(AID): #1I_I1Ccm (AndroidDev)