Это мое первое сообщение здесь, поэтому, пожалуйста, простите, если я нарушу какие-либо правила. Я много раз искал stackoverflow, но я не смог найти ответ на свою проблему.POST-запрос - длинная строка JSON - слишком большой размер запроса/конечная точка не найдена
В принципе, я пытаюсь отправить длинную строку JSON из рабочего стола Windows в виде тела запроса POST для службы WCF. «Long» я имею в виду, что, когда я десериализую строку и экспортирую ее как XML-файл, она занимает около 200 кБ. Тем не менее, я никуда не дену с короткой строкой 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, и он работает, но мы создаем настольное приложение Windows в VB.NET, и AJAX не переводит слово в слово на VB.NET.
Буду признателен за любую помощь. Заранее спасибо.
P.S. Это его код AJAX в HTML-файле, который он мне отправил, и он работает. Я достал 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#. Таким образом, я предлагаю отложить этот вопрос и задать два вопроса, похожие на «Как разместить большую строку JSON с помощью RestSharp» и «Как разместить большую строку JSON с помощью WebClient». Включение рабочего кода PHP в оба варианта отлично. – dbc
Если вы используете хром, я рекомендую взглянуть на почтальона.Это бесплатно и позволяет публиковать сообщения в своем веб-сервисе без использования вашего клиента. Таким образом, вы можете узнать, есть ли проблема с клиентом или сервером. и если вы не используете хром, я рекомендую вам начать (если это возможно)! – mattumotu
Я понимаю, почему вы хотите удалить URL-адрес, но подумайте: это также удаляет конечную точку, что затрудняет нам помощь. Если это предназначено для обеспечения безопасного обслуживания, вам нужно будет фактически его защитить, а просто скрывать его недостаточно. И если его публика сталкивается тогда, зачем скрывать ее здесь? – mattumotu