Tag: web services

记录服务SOAP请求和响应

我试图在C#中记录服务的soap请求和响应消息。 我有一个现成的肥皂扩展,它可以完成所有这些,但是我无法将其添加到服务方法中。 由于我的VS项目中添加了服务引用而不是Web服务引用,因此当我检查此服务的引用文件时,我看不到调用远程服务的方法。 我看到的所有示例都是添加到Web服务,它具有不同的参考格式。 在这种情况下如何记录soap消息?

如何使用C#在POST请求中发送json数据

我想使用C#在POST请求中发送json数据。 我尝试了很多方法,但面临很多问题。 我需要请求使用请求体作为来自字符串的原始json和来自json文件的json数据。 如何使用这两个数据表单发送请求。 例如:对于json中的身份validation请求正文 – > {“Username”:”myusername”,”Password”:”pass”} 对于其他API请求体应从外部json文件中检索。

Nullable类型的方法在使用GET的ASMX Web服务中不起作用

我有一个ASMX Web服务设置为使用HTTP GET方法。 采用基本String和Int参数的简单方法正常工作,我可以调用MyService.asmx/MethodName?Param=Value并以XML格式获取响应。 但是,当我有一个具有可空Int(即int? )的方法时,我收到此错误: Web服务方法名称无效。 错误消息令人困惑,因为该方法确实存在,而不是在GET范围内。 我认为这是因为可空类型太复杂而无法通过URL传递,但我找不到任何文档或SOpost。 我很欣赏Lists或自定义类等复杂类型无法使用GET,但我认为可以原生处理一个简单的可空int或可空日期,只需检测它是否从URL中省略。 猜猜不是那么简单! 任何建议或解决方法将不胜感激。 蒂姆,谢谢

Asp.net中的异步Web服务

如何在asp.net中设置异步Web服务? 我想调用web服务将一些数据发布到数据库,但我不关心响应是否失败或成功。 我只能使用.net 2.0或3.5,它可以是vb或c#。

通过SOAP Web服务传输二进制数据?

我有一个Web服务,它返回一个对象的二进制数组。 是否有更简单的方法使用SOAP传输它,还是需要包含在XML中? 它工作正常,但我必须将发送和接收缓冲区增加到一个很大的值。 多少是太多了? 将XML中的二进制文件作为数组传输似乎效率很低,但我看不到任何使用.NET添加二进制附件的方法。

如果内容长度> 7kb使用C#,则无法在WebRequest上发布

我正在尝试将Json发布到我们的Web服务。 我的问题是,当我的request.ContentLength超过7kb时。 我将在request.GetResponse()处获得Webexception500。 但是如果我的request.ContentLength低于7kb,我的post就成功发送了。 错误信息: The remote server returned an error: (500) Internal Server Error. 源代码: public static string JsonPost(string url, string method, string postData) { Uri address = new Uri(url + method); HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest; request.Method = “POST”; request.ContentType = “application/json”; byte[] byteData = UTF8Encoding.UTF8.GetBytes(postData); request.ContentLength = byteData.Length; using (Stream postStream […]

调用Web服务时“请求失败并显示空响应”

从aspx页面调用托管在服务器中的Web服务时,会收到类似“请求失败且响应为空”的错误。 我页面中的代码 try { HttpWebRequest request1 = (HttpWebRequest)WebRequest.Create(“https://login.erp.com/rodeprovisioning/provisioning.asmx”); request1.Accept = “text/xml”; request1.Method = “POST”; WebProxy proxyObject = new System.Net.WebProxy(“http://10.0.0.1:8080/”, true); request1.Proxy.Credentials = CredentialCache.DefaultCredentials; string sReturnValue = null; if (string.IsNullOrEmpty(Session[“Test”])) { sReturnValue = callservice(); if (sReturnValue == “Success”) { ErrorLabel.Text = sReturnValue; Session[“Test”] = “True”; } else { ErrorLabel.Text = sReturnValue; } } } catch (Exception […]

ASMX webservice不返回JSON,只能使用application / x-www-form-urlencoded contentType进行POST

我可以使用jQuery IF调用我的web服务contentType =“application / x-www-form-urlencoded; charset = utf-8” 但是,这将返回xml: [myjson] 如果我尝试使用“application / json; charset = utf-8”对服务进行POST,我会收到500错误,其中包含空StackTrace和ExceptionType。 我的网络服务function从未被打过,所以我不太确定如何调试这种情况。 我的方法和类使用适当的属性进行修饰,并设置为使用JSON作为其响应类型(与我的wsdl和disco文件一样)。 我安装了Ajax扩展和web.config中的必需条目。 这是在SharePoint服务器场上,但我不确定这会产生太大的影响。 我在所有WFE上部署了web.config更改,并安装了ajax扩展。 服务再次起作用,除了默认内容类型之外,它不会接受任何其他内容。 不知道我在这里缺少什么,伙计…… 我的ajax电话: $.ajax({ type: “POST”, url: “/_vti_bin/calendar.asmx/Test”, dataType: “json”, data: “{}”, contentType: “application/json; charset=UTF-8”, success: function(msg){ alert(msg); }, error: function(xhr, msg){ alert(msg + ‘\n’ + xhr.responseText); } }); 我的webservice类: [WebService(Namespace = “http://namespace”)] [WebServiceBinding(ConformsTo […]

ASP.NET Web服务结果,代理类和类型转换

我仍然是ASP.NET世界的新手,所以我可以离开这里,但到目前为止这是我最好的(有限的)知识! 假设我在Business命名空间中有一个标准的业务对象“Contact”。 我编写了一个Web服务来从数据库中检索联系人的信息,并将其返回。 然后我写了一个客户端应用程序来请求所述细节。 现在,我还创建了一个实用程序方法,该方法采用“联系”并对其进行一些魔术,如Utils.BuyContactNewHat()所说。 当然需要Business.Contact类型的联系人。 然后我回到我的客户端应用程序并想要使用BuyContactNewHat方法,所以我添加了对我的Utils命名空间的引用,它就在那里。 但是,出现了一个问题: Contact c = MyWebService.GetContact(“Rob); Utils.BuyContactNewHat(c); // << Error Here 由于GetContact的返回类型是MyWebService.Contact而不是预期的Business.Contact 。 我明白为什么会这样,因为在访问Web服务时,您实际上是针对WSDL生成的代理类进行编程。 那么,是否有一种“更容易”的方式来处理这种类型的不匹配? 我正在考虑尝试创建一个通用转换器类,它使用reflection来确保两个对象具有相同的结构,而不是简单地将值从一个传递到另一个。

在C#中预validationWeb服务请求

我在C#中调用Web服务请求时遇到问题。 服务和请求在Soap UI中正常工作,启用了“Authenticate Preemptively”选项(文件,首选项,HTTP设置)。 如果未启用此设置,则服务将返回“Java.Lang.NullPointerException”。 我遇到的问题是我不知道如何在C#上下文中启用此设置。 我有一个.NET 3.5类库,它包含对特定服务的所谓服务引用。 这是一个简单的代码片段; try { CatalogService.CatalogChangeClient service = new CatalogService.CatalogChangeClient(); service.ClientCredentials.UserName.UserName = “fancydress”; service.ClientCredentials.UserName.Password = “47fda9cb4b51a9e”; service.ClientCredentials.SupportInteractive = true; ProductUpdate[] products = new ProductUpdate[1]; products[0] = new ProductUpdate(); products[0].ProductCode = “00001”; products[0].ProductDescription = “TestProduct”; string result = service.UpdateProducts(products); } catch (Exception exception) { Console.WriteLine(exception.Message); } 第一次回复后更新。 CatalogService.CatalogChangeClient类似乎实现了WCF抽象类 System.ServiceModel.ClientBase 结束更新 […]