我无法理解为什么Java HttpURLConnection不遵循重定向.我使用以下代码来获取此页面:
import java.net.URL;
import java.net.HttpURLConnection;
import java.io.InputStream;
public class Tester {
public static void main(String argv[]) throws Exception{
InputStream is = null;
try {
String httpUrl = "http://httpstat.us/301";
URL resourceUrl = new URL(httpUrl);
HttpURLConnection conn = (HttpURLConnection)resourceUrl.openConnection();
conn.setConnectTimeout(15000);
conn.setReadTimeout(15000);
conn.connect();
is = conn.getInputStream();
System.out.println("Original URL: "+httpUrl);
System.out.println("Connected to: "+conn.getURL());
System.out.println("HTTP response code received: "+conn.getResponseCode());
System.out.println("HTTP response message received: "+conn.getResponseMessage());
} finally {
if (is != null) is.close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
而且,我收到以下回复(看起来绝对正确!):
Original URL: http://httpstat.us/301 Connected to: …
我的用例是进行 http 调用,从响应中的 Location 标头获取重定向 url,并使用此 url 执行负载测试。该 url 是动态生成的,因此是最初的第一个 http 调用。请注意,测试第一个 http 调用不是我的测试的一部分。实现这一目标的最佳方法是什么?加特林中是否有类似于 @BeforeMethod 的等效项?加特林本身可以用来进行独立的http调用还是我需要使用基本的scala来实现这一点?到目前为止我有这个:
val httpConfig = http
.inferHtmlResources()
.acceptHeader("*/*")
.acceptEncodingHeader("gzip, deflate")
.acceptLanguageHeader("en-US,en;q=0.5")
.header("Authorization", "Negotiate " + token)
.doNotTrackHeader("1")
.userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:51.0) Gecko/20100101 Firefox/51.0")
val scn = scenario("My Tests").exec(http("Health check")
.get("https://example-server.com")
.check(status.is(200)))
setUp(
scn.inject(atOnceUsers(10))
).protocols(httpConfig)
Run Code Online (Sandbox Code Playgroud)
我对加特林和scala的理解是有限的。因此就有了这个基本问题。
当我使用图片ID时,我有点不确定如何从Facebook当前检索大型个人资料图片.我正在将此网址加载到我的imageview中.
http://graph.facebook.com/1454465268197338/picture?type=large
但它没有加载,当我输入它虽然它的工作原理.
我上面提到的是在我放入第一个之后的REDIRECTED URL.问题是我无法使用userID生成,因为我正在使用它.
@Override
public void onBindViewHolder(ContactViewHolder contactViewHolder, int i) {
Event ci = contactList.get(i);
contactViewHolder.vName.setText(ci.name);
TinyDB userinfo =new TinyDB(context);
String user_id = userinfo.getString("id");
profile_pic_url ="http://graph.facebook.com/"+user_id+"/picture?type=large";
Picasso.with(context)
.load(profile_pic_url)
.resize(225, 225)
.centerCrop()
.into(contactViewHolder.vProfilePic);
}
Run Code Online (Sandbox Code Playgroud)
注意profile_pic_url.
所以最终,我怎样才能获得重定向的URL(因为我知道它有效)?
要么
如何从用户那里获得一个大型的Facebook个人资料图片网址,因为请记住facebook的android id,因为我从这里得到了什么:
parameters.putString("fields", "id,name,link,picture,friends");
Run Code Online (Sandbox Code Playgroud)
真的很小.
我试过用
https://developers.facebook.com/docs/graph-api/reference/user/picture/
不幸的是没有运气,
帮助表示赞赏.
TYTY