亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 URLconnection 對象上以什么格式發送數據,getInputStream?

在 URLconnection 對象上以什么格式發送數據,getInputStream?

UYOU 2022-12-28 16:09:16
我正在嘗試連接到php服務器上的腳本并檢索腳本回顯的文本。完成我使用了以下代碼。代碼:=import java.net.*;import java.io.*;class con{public static void main(String[] args){    try{        int c;        URL tj = new URL("http://www.thejoint.cf/test.php");        URLConnection tjcon = tj.openConnection();        InputStream input = tjcon.getInputStream();        while(((c = input.read()) != -1)){            System.out.print((char) c);        }        input.close();    }catch(Exception e){        System.out.println("Caught this Exception:"+e);    }    }}我確實得到了所需的輸出,即文本“你會非常成功”。但是當我刪除(char)類型轉換時,它會產生 76 位長。 8911111732119105108108329810132118101114121321151179999101115115102117108108 我無法理解的數字。我讀到getInputStream是 a byte stream,那么應該有數字乘以 8 數字長輸出嗎?任何見解都會非常有幫助,謝謝
查看完整描述

1 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

它不會打印一個 76 位長的數字。那里有一個循環,它會打印很多數字,每個數字最多三位數字(一個字節)。

在 ASCII 中,89 =“Y”,111 =“o”....

您刪除的轉換char所做的是將該數字解釋為 Unicode 代碼點并打印相應的字符(也是一次一個)。

這種逐字節讀取文本的方式非常脆弱。它基本上只適用于 ASCII。您應該使用 aReader來包裝InputStream. 然后你可以直接讀取charString(它會處理字符集,如 Unicode)。

哦,我以為它會給出單個字母的字節表示。

但這正是它的作用。如果使用printlninstead of print(然后它將在其自己的行上打印每個數字),您可以更清楚地看到它。


查看完整回答
反對 回復 2022-12-28
  • 1 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號