草庐IT

post_content

全部标签

c# - 构建用于测试的 HttpContext,如何指定 HttpRequest 是 POST?

我正在为将HttpContext作为参数的方法编写一些单元测试。当请求是POST时,我想测试行为是否符合预期。创建System.Net.HttpWebRequest时很容易设置方法,但我看不到在创建System.Web.HttpRequest时指定方法的方法,这是在HttpContext中使用的方法。有什么想法吗?对于上下文,该方法由httphandler调用,如果请求不是POST,它应该抛出405。我知道我可以使用web.config中的Verbs属性过滤允许的方法,我会的,但是没有什么可以阻止将来有人更改verbs属性以允许其他方法,在这种情况下我希望处理程序注意它本身。当前使用的

c# - HttpRequest.Content.IsMimeMultipartContent() 在应该返回 true 时返回 false

我需要将HTTP请求作为MultiPartFormData发送到RESTController。它正在工作,但现在我对我的Controller进行的检查声称请求的类型不正确,即使我可以在调试器中看到请求的类型正确。供引用:这是调用它的控制台应用程序代码:usingSystem;usingSystem.IO;usingSystem.Net.Http;usingSystem.Net.Http.Headers;usingSystem.Text;namespaceQuickUploadTestHarness{classProgram{staticvoidMain(string[]args){us

c# - Web Api 请求抛出 "Error while copying content to a stream."

我正在尝试实现这个codeexample,但得到一个HttpRequestException-“将内容复制到流时出错。”当调用ReadAsStringAsync()方法时。内部异常是“无法访问已处置的对象”。我正在使用Fiddler来发出请求。我不明白。有人可以解释为什么我会收到此异常并提供解决方案吗?网络API方法:publicasyncTaskPost(HttpRequestMessagerequest){try{varjsonString=awaitrequest.Content.ReadAsStringAsync();}catch(Exceptionex){throw;}ret

c# - ASP.NET MVC POST 中的模型绑定(bind) IEnumerable?

模型绑定(bind)IEnumerable类型到MVCPOST是否有任何问题?我的模型中的某些属性未绑定(bind)到操作的帖子上。似乎模型上的属性(如字符串)没问题,但我的IEnumerable是未绑定(bind)的。这是我的代码片段:m.ResponseInfo.SubsetInfo.Test)%>m.ResponseInfo.SubsetInfo.BandAvailabilities.ToArray()[i].BandName)%>下面是这些属性在模型中的样子:publicIEnumerableBandAvailabilities{get;set;}publicstringTes

c# - 设置 "Always copy to output directory"时,Content 和 None 有什么区别?

在csproj文件中,我们可以使用None或Content元素包含一个文件。来自MSDN,它说:None-Thefileisnotincludedintheprojectoutputgroupandisnotcompiledinthebuildprocess.Anexampleisatextfilethatcontainsdocumentation,suchasaReadmefile.Content-Thefileisnotcompiled,butisincludedintheContentoutputgroup.Forexample,thissettingisthedefaultva

c# - ASP.NET MVC - 带有来自 URL 的附加参数的 POST 操作方法

使用ASP.netMVC是否可以将表单POST到Controller操作,其中包含不在表单中但来自URL的参数?例如GroupController中的Action方法:[AcceptVerbs(HttpVerbs.Post)]publicActionResultCreate(intidOne,intidTwo,Modelmodel){...}路线:"{controller}/{action}/{idOne}/{idTwo}"发布网址:/Employee/Show/1/42在此示例中,表单被发布到不同的Controller,模型具有正确的值,但其他参数的默认值为0。我期望的行为是Mode

c# - WebApi POST 可以在没有 [FromBody] 的情况下工作吗?

我有这个ControllerAction:[HttpPost][ActionName("aaa")]publicHttpResponseMessageaaa(Zz)//notice-no[FromBody]{returnRequest.CreateResponse(HttpStatusCode.OK,1);}Z是:publicclassZ{publicstringa{get;set;}}但是当我通过fiddler发帖时:POSThttp://localhost:11485/api/profiles/aaaHTTP/1.1Content-Type:application/x-www-fo

c# - 检查 Querystring/Post/Get 请求中重复键的最佳方法是什么

我正在编写一个小型API,需要检查请求中的重复键。有人可以推荐检查重复键的最佳方法。我知道我可以检查key.Value中字符串中的逗号,但是我遇到了另一个问题,即API请求中不允许使用逗号。//Doesnotcompile-justforillustrationprivatevoidconvertQueryStringToDictionary(HttpContextcontext){queryDict=newDictionary();foreach(stringkeyincontext.Request.QueryString.Keys){if(key.Count()>0)//Error

c# - 错误 (HttpWebRequest) : Bytes to be written to the stream exceed the Content-Length bytes size specified

我似乎无法弄清楚为什么我不断收到以下错误:BytestobewrittentothestreamexceedtheContent-Lengthbytessizespecified.在以下行:writeStream.Write(bytes,0,bytes.Length);这是一个Windows窗体项目。如果有人知道这里发生了什么,我肯定会欠你一个。privatevoidPost(){HttpWebRequestrequest=null;Uriuri=newUri("xxxxx");request=(HttpWebRequest)WebRequest.Create(uri);request

c# - 为什么我不能在 WCF REST POST 方法中使用两个参数?

我有契约(Contract):[OperationContract][WebInvoke(Method="GET",ResponseFormat=WebMessageFormat.Xml,UriTemplate="GetCategoriesGET/{userIdArg}",BodyStyle=WebMessageBodyStyle.Bare)]ListGetVideosGET(stringuserIdArg);[WebInvoke(Method="POST",UriTemplate="evals")][OperationContract]voidSubmitVideoPOST(Vide