我即将下载以UTF-8编码的页面.所以这是我的代码:
using (WebClient client = new WebClient())
{
client.Headers.Add("user-agent", Request.UserAgent);
htmlPage = client.DownloadString(HttpUtility.UrlDecode(resoruce_url));
var KeysParsed = HttpUtility.ParseQueryString(client.ResponseHeaders["Content-Type"].Replace(" ", "").Replace(";", "&"));
var charset = ((KeysParsed["charset"] != null) ? KeysParsed["charset"] : "UTF-8");
Response.Write(client.ResponseHeaders);
byte[] bytePage = Encoding.GetEncoding(charset).GetBytes(htmlPage);
using (var reader = new StreamReader(new MemoryStream(bytePage), Encoding.GetEncoding(charset)))
{
htmlPage = reader.ReadToEnd();
Response.Write(htmlPage);
}
}
Run Code Online (Sandbox Code Playgroud)
所以,它设置UTF-8为编码.但是,下载的标题,例如,在我的屏幕中显示为:
Sexy cover: 60 e più di “quei dischi” vietati ai minori
Run Code Online (Sandbox Code Playgroud)
而不是:
Sexy cover: 60 e più di “quei dischi” vietati ai minori
Run Code Online (Sandbox Code Playgroud)
有些事情是错的,但我找不到.有任何想法吗?
我有这个iframe:
<iframe id="website-overlay" src="link" onload="OverlayMostraCustomContenuto()"></iframe>
Run Code Online (Sandbox Code Playgroud)
但是即使加载错误,也会加载此函数,例如:
Load denied by X-Frame-Options: http://www.youtube.com/watch?v=Q4cQsoz4mFA&feature=share does not permit cross-origin framing.
Run Code Online (Sandbox Code Playgroud)
有没有办法知道iframe是否正确加载?我想是的,如果Firebug能够抓住它。
在我的应用程序中,我从Facebook收到了一些json.如果我试试这个:
utente.birthday = ((objectParsed.birthday != null) ? DateTime.Parse((string)objectParsed.birthday) : (DateTime?)null);
Run Code Online (Sandbox Code Playgroud)
日期为:
"birthday": "01\/01\/1996"
Run Code Online (Sandbox Code Playgroud)
它工作正常,但如果日期是:
"birthday": "09\/23\/1982",
Run Code Online (Sandbox Code Playgroud)
我得到String was not recognized as a valid DateTime.例外.哪里出错了?
我有许多课程ErrorHandler,每个课程都做不同的事情.每个类都在命名空间内.
所以:
namespace1.ErrorHandler
namespace2.ErrorHandler
namespace3.ErrorHandler
Run Code Online (Sandbox Code Playgroud)
指的是三个不同的类.我想要一个带有泛型ErrorHandler参数的方法; 所以由于我传递给那个方法,它使用它.
可能吗?
我从客户端调用了30次WebService方法(asmx):
for (var i = 0; i < 30; i++) {
WSCustom.Test(i,
function (res) {
$("#Results").append(res + "<br />");
},
function (res) {
$("#Results").append(res.get_message() + "<br />");
}
);
}
Run Code Online (Sandbox Code Playgroud)
这是WebService方法:
[WebMethod(EnableSession = true)]
public string Test(int i)
{
DateTime m_oStart = DateTime.Now;
WebClient m_oClient = new WebClient();
if (i % 2 == 0)
{
byte[] res = m_oClient.DownloadData("http://www.repubblica.it/");
}
return String.Format("TotalSeconds:{0}", new string[] { DateTime.Now.Subtract(m_oStart).TotalSeconds.ToString() });
}
Run Code Online (Sandbox Code Playgroud)
我的方面是asynch回复.
我的意思是,我应该立即得到15个回复(奇怪的是i它立即返回),并且在剩余的回复期间(需要时间下载页面服务器端).
但事实上,outpup是不同的:它立即处理第一个电话.比,它等待第二个完成,比我收到一些奇怪的i回复,依此类推.
所以它根本不是异步的.
WebServices如何管理.NET中的客户端调用?我可以在整个过程中执行asynch吗?
有了EnableSession …
这是我的代码(取自stackoverflow)下载,检查并在固定路径上存储图像:
private static void DownloadRemoteImageFile(string uri, string path)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if ((response.StatusCode == HttpStatusCode.OK ||
response.StatusCode == HttpStatusCode.Moved ||
response.StatusCode == HttpStatusCode.Redirect) &&
response.ContentType.StartsWith("image", StringComparison.OrdinalIgnoreCase))
{
using (Stream inputStream = response.GetResponseStream())
using (Stream outputStream = File.OpenWrite(path))
{
byte[] buffer = new byte[4096];
int bytesRead;
do
{
bytesRead = inputStream.Read(buffer, 0, buffer.Length);
outputStream.Write(buffer, 0, bytesRead);
} while (bytesRead != 0);
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,让我们说,我倒是对双方创建图像path和path + "\duplicates\";:什么是最好的方式做到这一点?
回想一下具有不同路径的功能(所以我需要下载两次)或者我可以使用多个outputStream?
这是我的代码:
std::vector<int> array;
array.push_back(1);
array.push_back(2);
array.push_back(3);
array.push_back(4);
array.push_back(5);
for (int i = 0; i < array.size(); i++) {
if(array[i]==2 || array[i]==5) {
array.erase(array.begin() + i);
printf("### REMOVED ###\n", array[i], i);
}
printf("inside val: %d | index: %d\n", array[i], i);
}
Run Code Online (Sandbox Code Playgroud)
但正如你所看到的,它输出:
inside val: 1 | index: 0
### REMOVED ###
inside val: 3 | index: 1
inside val: 4 | index: 2
### REMOVED ###
inside val: 5 | index: 3
Run Code Online (Sandbox Code Playgroud)
当我的"期望"是:
inside val: 1 | index: 0 …Run Code Online (Sandbox Code Playgroud) 我需要一个必须添加/删除一些结构的队列,例如:
struct MyObject
{
int offset;
BYTE status, data1, data2;
double beatPos;
enum Status
{
isOff = 8,
isOn = 9,
};
}
Run Code Online (Sandbox Code Playgroud)
当我.Add()是一个元素时,这个队列必须把元素放在正确的位置,因为这个beatPos值必须从下面(队列的顶部,即我要弹出的下一个元素)到上面(最后一个元素)排序我将从中提取).
我看到有std :: priority_queue,但我不确定我是否可以选择哪个是排序字段.
此外,一旦我在列表中添加了一些结构,我想删除第一个元素(例如)beatPos=1,567(例如,可能位于列表中间;不一定在开头).
有线索吗?
这是我的代码:
void MIDITest::CreateNoteBlock() {
IMidiMsgExt* midiMessage = new IMidiMsgExt;
midiMessage->MakemidiMessageMsg(57, 100, 0, 0, 0);
queuedNotes.insert(*midiMessage);
midiMessage = new IMidiMsgExt;
midiMessage->MakemidiMessageMsg(60, 100, 0, tickSize * 38, 0);
queuedNotes.insert(*midiMessage);
midiMessage = new IMidiMsgExt;
midiMessage->MakemidiMessageMsg(62, 100, 0, 0, 0);
queuedNotes.insert(*midiMessage);
midiMessage = new IMidiMsgExt;
midiMessage->MakemidiMessageMsg(65, 100, 0, tickSize * 32, 0);
queuedNotes.insert(*midiMessage);
midiMessage = new IMidiMsgExt;
midiMessage->MakemidiMessageMsg(57, 0, tickSize * 111, 0);
queuedNotes.insert(*midiMessage);
midiMessage = new IMidiMsgExt;
midiMessage->MakemidiMessageMsg(60, 0, tickSize * 111, 0);
queuedNotes.insert(*midiMessage);
midiMessage = new IMidiMsgExt;
midiMessage->MakemidiMessageMsg(62, 0, tickSize * 75, …Run Code Online (Sandbox Code Playgroud) 我是这堂课:
class IPianoRoll : public IControl
{
private:
int x, y;
int w = 30 * numStep + 1;
int h = 8 * numSemitones + 1;
int o = 5;
public:
IPianoRoll(IPlugBase* pPlug, int pX, int pY) : IControl(pPlug, IRECT(pX, pY, pX + o + w + o, pY + o + h + o)) {
x = pX;
y = pY;
}
}
Run Code Online (Sandbox Code Playgroud)
但似乎私有变量值比成员初始化列表"更晚"可用.所以o,w和h不符合我的价值观初始化,它需要不同的值.
有没有办法预启动私有变量?