2012-02-25 60 views
0

我想知道如何获取具有指定标头和指定IP地址的URL源(如Source.fromURL)代码被执行并没有一个,但几个IP地址绑定)。Scala:检索具有指定标头和接口[IP]地址的内容

我该如何做到这一点?

谢谢。

+0

菲尔,你是否试图设置请求将被发送的IP地址,或者确定它发送后发送的地址? – 2012-02-27 19:08:26

+0

第一个。设置请求将从其发送的IP地址(网络接口)。 – Phil 2012-02-27 21:24:22

回答

5

我认为你可以做到这一点是相同的:

import io.Source 
import java.net.URL 

val stackOverflowURL = "http://69.170.135.92:80" 
val requestProperties = Map(
    "User-Agent" -> "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" 
) 
val connection = new URL(stackOverflowURL).openConnection 
requestProperties.foreach({ 
    case (name, value) => connection.setRequestProperty(name, value) 
}) 

print(Source.fromInputStream(connection.getInputStream).getLines.mkString("\n")) 
+0

亲爱的Odomontois,我非常感谢您花时间回复。然而,最重要的一点是缺失,可能是由于我自我解释不好。我想设置派发这个获取请求的IP。如在,设置该连接将使用的接口。该服务器有多个IP地址附加到它,我想设置IP连接将被触发。你如何看待这件事?我将衷心感谢您的帮助。谢谢!!! – Phil 2012-02-26 15:28:26

0

基于this other answer,它看起来对我来说,在java中的当前版本(6/7)有没有很好的方法,使一个HTTP请求绑定到特定的本地地址。 (用于工作的直接代理方法现在似乎被明确阻止。)该答案使其看起来像relatively easy way就是使用Apache公共HttpClient,它允许您指定要绑定的本地地址。

+1

这是一个相当悲剧和不幸的事。在PHP可以非常容易地实现这一点的世界中,Python需要复杂的模块和附加组件,而Java没有这么做,这真是一场悲剧。非常感谢您就此事提出的意见。 – Phil 2012-02-28 13:59:13