簡體   English   中英

{"errorMessages":["Unexpected character (''' (code 39)): 期望一個有效值

[英]{"errorMessages":["Unexpected character (''' (code 39)): expected a valid value

我從這里找到“使用 POST 查詢”。

並嘗試使用類似命令的 curl 命令。 通過在 windows 中引用this來安裝 curl。

這是我的 CURL 字符串:

curl -D- -u admin:password -X POST -H "Content-Type: application/json" --data 
'{"jql":"project = CI","startAt":0,"maxResults":50,"fields":["summary","status","assignee"]}' 
"https://myclientname.atlassian.net/rest/api/2/search"

這就是我正在做的事情並得到錯誤:

{"errorMessages":["Unexpected character (''' (code 39)): expected a valid value
(number, String, array, object, 'true', 'false' or 'null')\n
at [Source: org.apache.catalina.connector.CoyoteInputStream@1626cb2; line: 1, column: 2]"]}

在 Windows 中制作這個 curl 字符串有什么問題嗎? 請建議? 如何更正此問題並獲取 JSON 對象? 請注意,用戶名、密碼和客戶端名稱是正確的。 謝謝。

好像是windows的問題。 不要使用' (單引號)字符。

相反,使用" (雙引號) 字符將字符串括起來。然后,如果您有內部引號,請使用""" (3x 雙引號) 來轉義它們。

示例: "{ """name""":"""Frodo""", """age""":123 }"

我嘗試了您在問題中指出的 cURL,但沒有運氣。 此外,Git 附帶的 cURL 也不起作用。 但是,我用 CygWin 安裝的那個可以工作。 同樣的命令也適用於 Ubuntu。 這基本上表明您的命令本身沒問題。

如果您在 Windows 上工作,我建議您使用名為Fiddler的工具。 它幾乎可以執行您可能需要的所有 HTTP 請求。 祝你好運!

更新:在這里我添加了使用 Fiddler 發出 HTTP POST 請求的步驟。

1) 啟動 Fiddler 后,您將看到如圖 1 所示的 GUI。您應該在右上角輸入 JIRA 網站等人員、請求類型以及您要發布的內容。 具體來說,在“Composer”選項卡下,您需要選擇“POST”作為您的請求類型,並將 JIRA 的 URL 放在那里,保持選擇 HTTP/1.1。 您應該將請求標頭放在 URL 欄下。 現在,您需要注意. 至少,您應該在 HTTP 標頭中輸入兩件事:內容類型,即“application/json”,以及授權標頭 身份驗證是一個 Base64 字符串,您可以在此處使用“admin:password”獲取您的 Base64 字符串。 如果您想了解更多有關基本身份驗證方法的信息,請在此處參考 Jira 的網站。 GUI 的右下方面板是您應該放置帖子內容的地方。在此處輸入圖片說明

2) 當您准備好這些人員后,您可以單擊 GUI 右上角的“執行”按鈕。 執行結果將顯示在左側面板中。 如圖 2 所示,如果您得到狀態為 200 的結果,那么恭喜您,您得到了它。 如果你得到其他類型的結果,請谷歌錯誤代碼或在這里發表評論。在此處輸入圖片說明

3) 雙擊結果,返回的 JSON 內容將顯示在右下面板中,如圖 3 所示。您可以嘗試不同的選項卡來查看返回的人員。 例如,如果您轉到“TextView”,您將獲得作為純字符串返回的 JSON。在此處輸入圖片說明

如果您有任何進一步的問題,請發表評論。

請驗證您是否有任何用單引號括起來的值。

例如

"NetworkType": 'Test'

嘗試這個。 它應該工作。

curl -D- -u admin:password -X POST -H "Content-Type: application/json" --data 
\\"{"jql":"project = CI","startAt":0,"maxResults":50,"fields":["summary","status","assignee"]}\\"
"https://myclientname.atlassian.net/rest/api/2/search"

不要忘記在 json 之后和之前使用斜杠 (\\*{}\\*}

這對我有用:

curl.exe -u elastic:Password! -k -X POST "https://localhost:9200/_security/user/kibana_system/_password?pretty" -H "Content-Type: application/json" --data '{"""password""" : """CHANGEME"""}'

注意最后一個參數( --data )的格式:它使用單引號( ' )作為字符串分隔符,內部使用三重雙引號( "

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM