這是我第一次在這裏發帖,所以請原諒,如果我違反任何規則。我已經廣泛搜索了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