我正在尝试编写一个将网页(及其图像)保存为html页面的功能.我正在使用HttpWebRequest来请求网页的内容.我的功能看起来像
void SaveUrl(string sourceURL, string savepath)
{
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(sourceURL);
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
StreamReader responseReader = new StreamReader(response.GetResponseStream());
string sResponseHTML = responseReader.ReadToEnd();
using (StreamWriter sw = new StreamWriter(savepath, false))
{
sw.Write(sResponseHTML);
}
string[] ImageUrl = GetImgLinks(sResponseHTML);
foreach (string imagelink in ImageUrl)
{
HttpWebRequest imgRequest = (HttpWebRequest)WebRequest.Create(imagelink);
HttpWebResponse imgresponse = (HttpWebResponse)imgRequest.GetResponse();
//Code to save image
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我想在同一个会话中创建所有webrequest并且不想为每个imgRequest创建一个新会话,因为我的网页上的许多图像都是动态生成的并且是临时存储的.因此,如果我在同一会话中发出请求,则只能获取这些图像.
今天我注意到一个不寻常的问题,同时将一个快速的"正在建设"类型页面放在一起,我正在使用相对定位将文本移动到图像上.(如果你关心的话,这个页面是由SO的离线页面"启发"的)
<html>
<head>
<title>Bronco Marching Band</title>
</head>
<body style="background-color: #888;">
<div style="text-align: center;">
<img src="standby.jpg" width="799px" height="600px" alt="Please Stand By"
title="The Bronco Band website is down for a major upgrade. Please check back later."
style="width: 620px; height: 465px; opacity: 0.8;" />
<div style="color: #C69C6D; font-size: 397%; font-weight: bold; font-family: sans, arial, helvetica; position: relative; top: -300px; left: 0px;">
PLEASE STAND BY
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
似乎相对定位的div曾经占据的区域仍占据空间.即如果它没有定位,它会在div下方留下空白区域.
有没有办法解决?
由于许多J2ME手机的(非常烦人)限制,音频文件在完全下载之前无法播放.因此,为了播放实时流,我不得不一次下载块,并构建ByteArrayInputStreams,然后我将其提供给玩家.
这很有效,除了每次流结束时需要大约1/4秒的烦人间隙并且需要新的间隙.有没有办法解决这个问题,或上面的问题?
是否有人熟悉OS X Safari(版本3和WebKit)中的本机代码?我正在使用Javascript来解析表单中的一些信息,我的一个输入被命名为"tags".尝试使用以下方法获取该元素的值时:
// button is being passed through a function as a DOM object
var tags = button.form.elements["tags"].value;
Run Code Online (Sandbox Code Playgroud)
Safari返回某种功能.我已经得到它提醒像"function tags(){[native code]}"和Node Trees这样的值,但我无法理解为什么我会遇到麻烦.如果有人有线索,请告诉我.我已经通过将输入的名称更改为其他内容并通过迭代所有元素并使用if()语句来确定它是否是我想要的元素来实现它,但我非常好奇为什么Apple会限制使用任何名为"tags"的表单元素...
PS - 它的测试,在Firefox中运行良好.
我需要将float显示为
1.00
1.50
1.55
1.60
Run Code Online (Sandbox Code Playgroud)
以下是我使用f2格式看到的内容.
1.
1.5
1.55
1.6
Run Code Online (Sandbox Code Playgroud)
有没有办法强制尾随0出现?
(我正在使用DevExpress SpinEdit控件并尝试设置显示和编辑格式.)
是否可以使用GNU工具(gcc,binutils等)将所有出现的汇编指令修改为无操作?具体来说,带-pg选项的gcc会生成以下程序集(ARM):
0x0: e1a0c00d mov ip, sp
0x4: e92dd800 stmdb sp!, {fp, ip, lr, pc}
0x8: e24cb004 sub fp, ip, #4 ; 0x4
0xc: ebfffffe bl 0 <mcount>
Run Code Online (Sandbox Code Playgroud)
我想记录最后一条指令的地址,然后将其更改为nop,如下面的代码所示
0x0: e1a0c00d mov ip, sp
0x4: e92dd800 stmdb sp!, {fp, ip, lr, pc}
0x8: e24cb004 sub fp, ip, #4 ; 0x4
0xc: e1a00000 nop (mov r0,r0)
Run Code Online (Sandbox Code Playgroud)
Linux内核可以在运行时执行与此类似的操作,但我正在寻找构建时解决方案.
我正在使用authlogic-example-app,当我注册用户时,我无法从OpenID提供商(在我的情况下是谷歌和雅虎)获得电子邮件地址.我得到一个空响应而不是电子邮件地址(请查看下面代码中的注释).
这就是我的用户模型的样子(其他一切看起来像上面提到的authlogic-example-app的"with_openid" - 分支).除了缺少"电子邮件"之外,openid-authentication-process按预期工作:
class User < ActiveRecord::Base
acts_as_authentic do |c|
# not needed because I use OpenID
c.validate_login_field = false
# avoid failed validation before OpenID request
c.validate_email_field = false
# this one sets 'openid.sreg.required=email'
c.required_fields = [:email]
end
private
# overwriting the existing method in '/lib/authlogic_openid/acts_as_authentic.rb'
def map_openid_registration(registration)
# this is my problem: 'registration' is an empty hash
self.email ||= registration[:email] if respond_to?(:email) && !registration[:email].blank?
end
end
Run Code Online (Sandbox Code Playgroud)
不知道怎么解决这个问题?有没有人在使用authlogic之前完成此操作?甚至更好:你有一个有效的例子吗?
更新:我检查了Google帐户身份验证API,并将authlogic(使用 …
此时我希望文本区域为空,因为我已将ViewData ["SomeText"]设置为string.Empty
为什么在发布操作后文本区域值不会更新为空字符串?
以下是行动:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Message(int ID)
{
ViewData["ID"] = ID;
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Message(int ID, string SomeText)
{
// save Text to database
SaveToDB(ID, SomeText);
// set the value of SomeText to empty and return to view
ViewData["SomeText"] = string.Empty;
return View();
}
Run Code Online (Sandbox Code Playgroud)
和相应的观点:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm())
{ %>
<%= Html.Hidden("ID", ViewData["ID"])%>
<label for="SomeText">SomeText:</label>
<%= Html.TextArea("SomeText", ViewData["SomeText"]) …Run Code Online (Sandbox Code Playgroud) 我有一个叫做的目录foo,而且我有lib和bin.有bin需要的脚本lib.我做这样的事情:
#!perl
use strict;
use warnings;
use lib '../lib';
use Foo; # <-- comes from lib
Run Code Online (Sandbox Code Playgroud)
但这意味着我必须在bindir中运行脚本.当然有更好的方法.什么是正确的方法呢?