【发布时间】:2015-05-09 15:20:14
【问题描述】:
这是我第一次在这里发帖,如果我违反了任何规则,请原谅。我已经广泛搜索了stackoverflow,但我无法找到我的问题的答案。
基本上,我正在尝试从 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。
如果有任何帮助,我将不胜感激。提前致谢。
附:这是他发送给我的 HTML 文件中的 AJAX 代码 - 它有效。为了安全起见,我取出了 URL,并将长 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 代码就可以了。
-
如果你使用 chrome,我建议你看看 postman。它是免费的,允许您在不使用客户端的情况下发布到您的网络服务。通过这种方式,您可以找出是客户端问题还是服务器问题。如果您不使用 chrome,我建议您开始(如果可能)!
-
我理解您为什么要删除 url,但请考虑:这也会删除端点,这使我们很难为您提供帮助。如果这是一项安全服务,您将需要实际保护它,仅仅隐藏它是不够的。如果它是面向公众的,那为什么要把它藏在这里呢?
标签: c# json vb.net post webrequest