这是我第一次在这里发帖,所以请原谅,如果我违反任何规则。我已经广泛搜索了stackoverflow,但我无法找到我的问题的答案。POST请求 - 长JSON字符串 - 请求大小太大/端点未找到
基本上,我试图从Windows桌面应用程序发送一个长的JSON字符串作为POST请求的正文到WCF服务。 “长”我的意思是,当我反序列化字符串并将其导出为XML文件时,它需要大约200 kB。但是,我没有得到任何带有简短JSON字符串的地方。
我试过使用RestSharp,但我不断收到“未找到端点”。错误。当我尝试在StackOverflow上找到的方法或MSDN的默认方法时,出现错误消息:“错误413:请求实体太大。”或者,如果我发送一个简短的JSON字符串,则会收到“错误400:错误的请求”。
以下是我使用的方法。
Restsharp: RestSharp simple complete example
(这里我用141票的第一个答案) .NET: Simplest way to send POST with data and read response
我用VB.NET,但我会很乐意参加C#的答案以及。但是,PHP或AJAX中的答案对我来说不会有多大的好处。我已经有一位同事在AJAX中实现了它,并且它可以工作,但我们正在VB.NET中构建Windows桌面应用程序,而AJAX并不完全将单词转换为VB.NET。
我将不胜感激任何帮助。提前致谢。
P.S.这是他发给我的HTML文件中的他的AJAX代码 - 它可以工作。为了安全起见,我拿出了URL,并用一个简单的JSON字符串取代了长JSON字符串。
<!DOCTYPE HTML>
<html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
function btn_click(){
//alert('btn');
var updatedData='[{"firstname": "Billy", "lastname": "Bob", "occupation": "cowboy"}]';
$.ajax({
type: "POST",
url:"<suppressed>",
data: JSON.stringify(updatedData),
contentType: "application/json; charset=utf-8?",
dataType: "json",
processData: true,
success: function (data, status, jqXHR) {
alert("success…" + data);
},
error: function (xhr) {
$('#msgText').text(xhr.responseText);
//alert(xhr.responseText);
}
});
}
</script>
</head>
<body>
<input type="button" text="Click" Value="Click" onclick="btn_click()">
<label id="msgText"></label>
</body>
欢迎来到StackOverflow。关于在这里提问的一些注意事项:1)尝试每个问题提出一个问题。具有多个独立部分的问题得到的答复较少。 2)显示你迄今为止所做的 - VB.NET或c#。因此,我建议退休问题并提出2个类似于“如何使用RestSharp发布大型JSON字符串”和“如何使用WebClient发布大型JSON字符串”的问题。在两者中包括有效的PHP代码都很好。 – dbc
如果你使用铬,我建议看看邮差。它是免费的,并允许您发布到您的web服务,而无需使用您的客户端。这样你就可以发现它是否与客户端或服务器有问题。如果你不使用铬我建议你开始(如果可能)! – mattumotu
我明白您为什么要移除网址,但请考虑:这也会移除端点,这使我们很难为您提供帮助。如果这意味着要成为一项安全的服务,那么他们需要真正的保护它,仅仅隐藏它是不够的。如果它的公众面临那么为什么要把它藏在这里呢? – mattumotu