0

私のプログラムでは、クライアントサーバープログラムを作成しようとしていますが、クライアントStringはサーバーに2つ送信します。最初の1つはWebアドレス、2つ目はユーザーに関するランダムな情報ですが、URLアドレスがサーバーに到着すると、この例外:

Exception in thread "main" java.io.IOException: Server returned HTTP response code: 403 for URL: http://www.google.com.hk/search?hl=en&source=hp&q=java&gbv=2
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1245)
    at java.net.URL.openStream(URL.java:1009)
    at server.Server.processClient(Dom.java:124)
    at server.Server.run(Dom.java:90)
    at server.Server.main(Dom.java:155)
Java Result: 1

しかし、禁止された応答を取得する理由がわかりません。

クライアント側

              private static BufferedWriter toServer;
....

  public void progressUpdated(NavigatorProgressEvent npe) {



            Matcher matcher = pattern.matcher (npe.getUrl().toString());


            if (matcher.matches ())
                        {
                System.out.println(npe.getUrl());
                        toServer.println(npe.getUrl().toString());


                                }

サーバ側

...
   url = new URL(fromClient.readLine());

....

4

1 に答える 1

0

ヘッダー リクエストに「User-Agent」が含まれていない可能性があります。

このコードを追加してみてください:

httpUrlConnection.setRequestProperty("User-Agent","MyUserAgentName");

ユーザー エージェント名を指定しない場合、Google は応答しません。そして、適切なユーザー エージェント名を選択してみてください:D

于 2012-04-07T05:07:27.160 に答える