小编Sae*_*ini的帖子

HTTP POST返回错误:417"期望失败."

当我尝试POST到URL时,会导致以下异常:

远程服务器返回错误:(417)期望失败.

这是一个示例代码:

var client = new WebClient();

var postData = new NameValueCollection();
postData.Add("postParamName", "postParamValue");

byte[] responseBytes = client.UploadValues("http://...", postData);
string response = Encoding.UTF8.GetString(responseBytes); // (417) Expectation Failed.
Run Code Online (Sandbox Code Playgroud)

使用一HttpWebRequest/HttpWebResponse对或一HttpClient对没有区别.

造成这种异常的原因是什么?

.net c# webclient http http-post

209
推荐指数
4
解决办法
19万
查看次数

Json.Net中的私人制定者

我知道有一个属性来处理私有的setter但我有点想把这个行为作为默认值,有没有办法实现这个?除了调整来源.如果有这样的设置会很棒.

c# json.net

81
推荐指数
4
解决办法
3万
查看次数

花括号在C#字符串中意味着什么?

while (rdr.Read())
{
    Console.WriteLine("Product: {0,-35} Total: {1,2}", rdr["ProductName"], rdr["Total"]);
}
Run Code Online (Sandbox Code Playgroud)

{0,-35}在此代码中的含义是什么?

c# string-formatting

9
推荐指数
3
解决办法
3447
查看次数

如何有选择地抑制 Visual Studio 中的标记验证?

有时我发现能够在包含 HTML(ASPX 等)的文件中抑制某些标记验证警告很有用。

是否有相当于#pragma warning disable\restoreHTML 的?

asp.net markup warnings suppress visual-studio

6
推荐指数
1
解决办法
1102
查看次数

异步方法在当前线程(主线程)中启动AsyncCallback

有一个TcpListener类的服务器.它使用BeginAcceptTcpClient(AsyncCallback,Object)方法接受传入连接.

代码写在示例MSDN中

public static ManualResetEvent tcpClientConnected = 
    new ManualResetEvent(false);

public static void DoBeginAcceptTcpClient(TcpListener 
    listener)
{
    while(true)
    {
        tcpClientConnected.Reset();
        Console.WriteLine("Waiting for a connection...");
        listener.BeginAcceptTcpClient(
            new AsyncCallback(DoAcceptTcpClientCallback), 
            listener);
        tcpClientConnected.WaitOne();
    }
}
public static void DoAcceptTcpClientCallback(IAsyncResult ar) 
{
    TcpListener listener = (TcpListener) ar.AsyncState;
    TcpClient client = listener.EndAcceptTcpClient(ar);
    Console.WriteLine("Client connected completed");
    tcpClientConnected.Set();
    while(true)
    {
         //Receiving messages from the client
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是DoAcceptTcpClientCallback(IAsyncResult ar)方法有时会在当前线程(main)中开始执行,而不是在新线程中执行,并阻塞它(main).因此,无法接收以下连接.请帮助理解为什么不为此方法创建线程

.net c# sockets multithreading asynchronous

6
推荐指数
1
解决办法
351
查看次数

如果语句在组合枚举值上没有按预期工作

这是一个古怪的.

我有以下代码......

foreach (IScanTicket ticket in this) {
    if (ticket.Status == TicketStatus.Created || ticket.Status == (TicketStatus.Transfered | TicketStatus.Created))
        return ticket;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行这个状态时Created|Transferred,if语句似乎失败了(没有按照它的意思去做).

有趣的是,如果我调试并逐步执行代码并观察语句,它总是TRUE在我的调试器中返回,但是当我单步执行代码时它无法进入块.

为什么调试器会显示该语句true,但仍然继续这样做?这就像调试器告诉我的一样.

有没有人经历过这个?

PS我正在使用Xamarin studio 5.9.7

.net c# debugging if-statement

5
推荐指数
1
解决办法
174
查看次数

按ID获取div内容

我有一个字符串,保存整个HTML文档.我想获得具有特定id的div内的所有内容.例如:

<div id="myId" class = "myClass">
 <div class = "myClass">hello</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我需要带有id ="myId"的标签和它的结束标签之间的内容.有没有办法实现这个目标?输出应该是第二行.

html c# html-parsing

4
推荐指数
1
解决办法
2万
查看次数

使用HTML Agility Pack将整个表单元素获取为字符串

这是我第一次使用HTML Agility Pack,并立即面临问题。

就像我的标题所建议的那样,我想将整个元素作为包含内部元素的字符串获取。

因此,例如下面是我的html,我正在搜索具有id的表单元素 aspnetForm

<html>  
<head>  
</head>  
<body>  
  <form name="aspnetForm" id="aspnetForm">
    <div id="div1">  
        <a href="div1-a1">Link 1 inside div1</a>  
        <a href="div1-a2">Link 2 inside div1</a>  
    </div>  
    <a href="a3">Link 3 outside all divs</a>      
    <div id="div2">  
        <a href="div2-a1">Link 1 inside div2</a>  
        <a href="div2-a2">Link 2 inside div2</a>  
    </div> 
  </form> 
</body>  
</html>
Run Code Online (Sandbox Code Playgroud)

我希望以下为输出(以字符串形式)

  <form name="aspnetForm" id="aspnetForm">
    <div id="div1">  
        <a href="div1-a1">Link 1 inside div1</a>  
        <a href="div1-a2">Link 2 inside div1</a>  
    </div>  
    <a href="a3">Link 3 outside all divs</a>      
    <div id="div2">  
        <a href="div2-a1">Link 1 inside div2</a>  
        <a href="div2-a2">Link …
Run Code Online (Sandbox Code Playgroud)

c# html-agility-pack

4
推荐指数
1
解决办法
1599
查看次数

在Git别名中使用反引号命令执行

这是一个演示我的问题的简单示例.如果我做:

git commit -m "`date --utc`"
Run Code Online (Sandbox Code Playgroud)

它执行date --utc,并将结果放在提交消息中.

但是,当我将它别名为testcomit时:

git config --global alias.testcommit 'commit -m "`date --utc`"'
Run Code Online (Sandbox Code Playgroud)

执行git testcommit不执行该`date --utc`部分,而是将其逐字地放在提交消息中.

那么,如何让这个别名执行date --utc

git msysgit backticks git-bash git-alias

1
推荐指数
1
解决办法
663
查看次数