Follwing网页包含轻量级成人内容。如果您不想要,请不要点击链接。
这种安全方式阻止该网站的直接访问吗?
是否有任何解决方法直接获取图像?
InputStream bmis;
bmis = new URL(params [0])。openStream();
最终可绘制图像=
new BitmapDrawable(BitmapFactory.decodeStream(new FlushedInputStream(bmis)));
if(image!= null)
{
activity.setContentView(imageSwitcher);
imageSwitcher.setImageDrawable(image);
}
答案 0 :(得分:1)
我只是在这里猜测,但我认为这个网站的作用是检查HTTP请求标题中的“Referer”字段,以检查请求是来自网站内还是来自外部。
这不是阻止直接访问的安全方法。事实上,有一种解决方法,但我不认为网站规则允许我在这里写,所以,你必须弄清楚自己。
答案 1 :(得分:0)
这是因为推荐人。您必须通过该主页推荐才能打开图片。
抱歉,我不确定如何使用Android,但C#代码应如下所示:
static void Main(string[] args)
{
for (int i = 1; i <= 15; i++)
{
HttpWebRequest request =
WebRequest.Create(
string.Format("http://www.hqasians.com/tgp/bigasiantits/MaiNishida/images/{0:00}.jpg", i)
) as HttpWebRequest;
request.Credentials = CredentialCache.DefaultCredentials;
request.Referer = "http://www.hqasians.com/tgp/bigasiantits/MaiNishida/at.htm";
request.Method = "POST";
WebResponse response = request.GetResponse();
string inputFile = string.Format("{0}.jpg", i);
Console.WriteLine(response.ResponseUri.AbsoluteUri);
using (Stream file = File.OpenWrite(inputFile))
{
CopyStream(response.GetResponseStream(), file);
}
}
}
/// <summary>
/// Copies the contents of input to output. Doesn't close either stream.
/// </summary>
public static void CopyStream(Stream input, Stream output)
{
byte[] buffer = new byte[8 * 1024];
int len;
while ((len = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, len);
}
}
从这里获取CopyStream方法:How do I save a stream to a file in C#?