我正在尝试为个人项目编写C#http服务器,我想知道如何将返回的服务器头从Microsoft-HTTPAPI/2.0更改为其他内容?
public class HttpWebServer
{
private HttpListener Listener;
public void Start()
{
Listener = new HttpListener();
Listener.Prefixes.Add("http://*:5555/");
Listener.Start();
Listener.BeginGetContext(ProcessRequest, Listener);
Console.WriteLine("Connection Started");
}
public void Stop()
{
Listener.Stop();
}
private void ProcessRequest(IAsyncResult result)
{
HttpListener listener = (HttpListener)result.AsyncState;
HttpListenerContext context = listener.EndGetContext(result);
string responseString = "<html>Hello World</html>";
byte[] buffer = Encoding.UTF8.GetBytes(responseString);
context.Response.ContentLength64 = buffer.Length;
System.IO.Stream output = context.Response.OutputStream;
output.Write(buffer, 0, buffer.Length);
output.Close();
Listener.BeginGetContext(ProcessRequest, Listener);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个控制台应用程序.一个类(比如说Worker)在一个单独的线程中做一些工作,并在它完成时抛出一个事件.但这绝不会发生,因为执行立即结束.如何在线程抛出后等待线程完成并处理事件?
static void Main(string[] args)
{
Worker worker = new Worker();
worker.WorkCompleted += PostProcess;
worker.DoWork();
}
static void PostProcess(object sender, EventArgs e) { // Cannot see this happening }
Run Code Online (Sandbox Code Playgroud)
编辑:更正了语句的顺序,但这不是问题.
我怎样才能让C#区分不明确的类类型,而不必HtmlAgilityPack.HtmlDocument每次都指定全名(与之相比是不明确的System.Windows.Forms.HtmlDocument)?
有没有办法让C#知道我总是在谈论一个类或另一个类,因此每次使用它时都不必指定它?
我目前正在开发一个Web应用程序(ASP.NET),其中包含的一些页面是由其他程序员创建的,我注意到,他们没有使用"Me(VB.NET)"关键字来访问控件,虽然在我身边,我在我创建的每一页中都使用过它.只是为了提供更多信息,Web应用程序在.NET Framework 2.0上运行.有没有人会帮助我理解它是否需要使用我?如果您使用我,整个代码有哪些优缺点?它能改善应用程序的性能吗?
任何帮助都非常感谢.提前致谢.
我之前一直在做的一份报告开始在圣诞节期间误报.它上面的一些文本框突然开始将文本内容中的每个字符呈现在彼此之上,就像每个字符的打印不再"将光标前进"到下一个字符的正确位置一样.报告通过URL访问呈现为PDF.
以前有人见过这种行为吗?
知道是什么原因引起的吗?
实际上,我只是好奇.
(我目前不知道"圣诞节前后"服务器上有什么变化.)
如果我在堆上有两个对象相互引用但它们没有链接到任何引用变量那么那些对象是否有资格进行垃圾回收?
我的页面处理许多"商店"对象,每个对象都有一个名为"数据"的字段.但是,这些数据是通过AJAX请求获取的,这些请求可以并行进行.
function Store(id){
this.id = id;
this.queryparam = 'blah';
this.items = null;
}
Store.prototype.fetch = function(){
$.get("/get_items",{q:this.quaryparam},function(data,status){
// how to store the received data in this particular store object? Being
// a callback function, I don't have a reference to this object as 'this'
// this.data = data; //will not work
});
}
Run Code Online (Sandbox Code Playgroud)
在回调函数中,我尝试为调用对象定义一个默认参数,如下所示:
$.get("/get_items",{q:this.quaryparam},function(data,status, ref = this) ...
Run Code Online (Sandbox Code Playgroud)
但事实证明,javascript不支持这样的默认参数值.我可以以某种方式让jquery在回调函数中传递对'this'存储的引用吗?
我想到了其他几种方法,但没有一种方法可行:
我可以使用同步请求设置商店数据,但那不是AJAX的重点,是吗?
对我来说另一种方法是,也可以在响应中返回的请求中发送商店ID.例如:
// in Store.fetch()
$.get("/get_items",{q:this.quaryparam,id:this.id},function(responsetext,status){
var response = eval(responsetext);
stores[response.id].data = response.data;
});
Run Code Online (Sandbox Code Playgroud)
我不喜欢这种方法,因为这会污染响应只是因为客户端代码无法跟踪哪个对象发送了哪个请求.
此外,由于store.id是特定于客户端的,因此它也会破坏服务器上的缓存.不同的请求URL将用于两个不同的存储,即使它们具有相同的查询参数.
有没有其他方法可以实现我想要的?
我正在尝试在我的Dreamhost帐户上使用Poll教程(我没有任何部署Django的经验).我在我的主目录下载了我在这里找到的脚本(http://gabrielfalcao.com/2008/12/02/hosting-and-deploying-django-apps-on-dreamhost/)并执行了它.现在我在〜/ .myroot /中有Python 2.5和Django,我的Django项目目录是〜/ projects /
这是〜/ projects /目录的内容(我自己复制了民意调查/和模板/民意调查/目录).
projects/
|-- admin_media -> /home/imran2140/.myroot/usr/lib/python2.5/site-packages/django/contrib/admin/media
|-- dispatch.fcgi
|-- polls
| |-- __init__.py
| |-- __init__.pyc
| |-- admin.py
| |-- admin.pyc
| |-- models.py
| |-- models.pyc
| |-- polls.db
| |-- urls.py
| |-- urls.pyc
| |-- views.py
| `-- views.pyc
|-- script_templates
| |-- dispatch.template
| `-- htaccess.template
`-- templates
`-- polls
|-- detail.html
|-- index.html
`-- results.html
5 directories, 17 files
Run Code Online (Sandbox Code Playgroud)
现在我应该怎么做才能让民意调查应用程序运作?
更新
我终于得到了一个使用Passanger WSGI的"Hello World"Django应用程序.服务器的默认Python …
我是python和app引擎的新手.
我有这个代码,在一些auth逻辑之后根据请求参数发送一封电子邮件.在我的单元测试中(我正在使用GAEUnit),如何确认发送了具有特定内容的电子邮件? - 即如何使用虚假的电子邮件模拟电子邮件以验证发送是否被调用?
class EmailHandler(webapp.RequestHandler):
def bad_input(self):
self.response.set_status(400)
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write("<html><body>bad input </body></html>")
def get(self):
to_addr = self.request.get("to")
subj = self.request.get("subject")
msg = self.request.get("body")
if not mail.is_email_valid(to_addr):
# Return an error message...
# self.bad_input()
pass
# authenticate here
message = mail.EmailMessage()
message.sender = "my.company@gmail.com"
message.to = to_addr
message.subject = subj
message.body = msg
message.send()
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write("<html><body>success!</body></html>")
Run Code Online (Sandbox Code Playgroud)
单元测试,
import unittest
from webtest import TestApp
from google.appengine.ext import webapp
from email import EmailHandler
class SendingEmails(unittest.TestCase):
def …Run Code Online (Sandbox Code Playgroud) 我有一个表说例子"ABC",我有一行需要存储到这个"ABC"表中.我计划更新它而不是从表中删除然后插入.这会对数据库产生什么影响?在,表级,页面级,时间,成本和每件事.
c# ×3
.net ×1
ajax ×1
asp.net ×1
deployment ×1
django ×1
dreamhost ×1
fastcgi ×1
http ×1
httplistener ×1
insert ×1
java ×1
javascript ×1
jquery ×1
mocking ×1
pdf ×1
python ×1
sql-server ×1
unit-testing ×1
vb.net ×1
wsgi ×1