0

以下は私のコードで使用しているURLです

URL url = new URL("https://8.7.177.4/ns-api?object=answerrule&action=read&domain=amj.nms.mixnetworks.net&user=9001");

しかし、iamは例外を取得します

java.io.FileNotFoundException: https://8.7.177.4/ns-api/?object=answerrule&action=read&domain=amj.nms.mixnetworks.net&user=9001
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    at AuthenticateCurl.authenticatenewPostUrl(AuthenticateCurl.java:311)
    at AuthenticateCurl.main(AuthenticateCurl.java:341)

/?object=answerrule例外として、クエリ文字列を開始する前に追加されているurlを見つけることができます。

どうすればこれを解決できますか。

4

1 に答える 1

2

余分な「/」を付けずにURLにアクセスすると、Webサーバーは余分な「/」を含むバージョンに転送します。curlコマンドラインでURLを試行すると、次のことがわかります。

$ curl --insecure -v 'https://8.7.177.4/ns-api?object=answerrule&action=read&domain=amj.nms.mixnetworks.net&user=9001'
> GET /ns-api?object=answerrule&action=read&domain=amj.nms.mixnetworks.net&user=9001 HTTP/1.1
> User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5
> Host: 8.7.177.4
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently
< Date: Thu, 12 Jul 2012 18:45:28 GMT
< Server: Apache/2.2.11 (Fedora)
< Location: https://8.7.177.4/ns-api/?object=answerrule&action=read&domain=amj.nms.mixnetworks.net&user=9001
< Content-Length: 392
< Connection: close
< Content-Type: text/html; charset=iso-8859-1
<

これは問題なく、HttpURLConnectionは自動的に新しいURLへのリダイレクトに従います。これは通常の動作です。

新しいURLに続いて、異なる結果が得られます。

$ curl --insecure -v 'https://8.7.177.4/ns-api/?object=answerrule&action=read&domain=amj.nms.mixnetworks.net&user=9001'
> GET /ns-api/?object=answerrule&action=read&domain=amj.nms.mixnetworks.net&user=9001 HTTP/1.1
> User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5
> Host: 8.7.177.4
> Accept: */*
> 
< HTTP/1.1 404 Not Found
< Date: Thu, 12 Jul 2012 18:46:46 GMT
< Server: Apache/2.2.11 (Fedora)
< X-Powered-By: PHP/5.2.9
< Content-Length: 0
< Connection: close
< Content-Type: text/html; charset=UTF-8
< 

...そして404が発生するため、FileNotFoundExceptionが発生します。

リダイレクトを予期しておらず、サーバーも実行している場合は、サーバーの構成に問題がある可能性があります。

于 2012-07-12T18:28:42.983 に答える