0

ブラウザ ウィンドウのhttps://groups.google.com/group/caelyf/feed/rss_v2_0_topics.xmlは、xml ストリームを正しく返します。

cloudfoundry アプリで groovy を使用すると、次のような http 403 アクセス許可エラーで失敗します。

def url = "https://groups.google.com/group/caelyf/feed/rss_v2_0_topics.xml:443".toURL()
def tx = url.getText('UTF-8')

cloudfoundry フォーラムは、https とポート 443 のみが外部 URL を読み取ることができることを意味します

何か案は ?

4

1 に答える 1

1

:443URLの最後に固執した理由がわかりませんか?

403は禁止を意味します。グーグルはあなたにジャバでグループサイトをこすり落とすことを許さないと思います。

ユーザーエージェントをブラウザのエージェントに設定してみてください。

def tx = url.openConnection().with {
  setRequestProperty("User-Agent", "Firefox/2.0.0.4")
  inputStream.with {
    def ret = getText( 'UTF-8' )
    close()
    ret
  }
}

または類似...

これはcloudfoundryの問題ではないと思います。これを確認するために、マシンから上記を実行してみましたか?

編集:

試してみたところ、動作しました(少なくとも私のマシンでは)。これは、XMlをパーサーにロードし、フィードからタイトルを印刷する方法を示しています。

URL url = "https://groups.google.com/group/caelyf/feed/rss_v2_0_topics.xml".toURL()

def tx = new XmlSlurper().with { x ->
  url.openConnection().with {
    // Pretend to be an old Firefox version
    setRequestProperty("User-Agent", "Firefox/2.0.0.4")
    // Get a reader
    inputStream.withReader( 'UTF-8' ) {
      // and parse it with the XmlSlurper
      parse( it )
    }
  }
}

// Print all the titles
tx.channel.item.title.each { println it }
于 2012-11-27T22:56:40.827 に答える