简体   繁体   English

POST 请求返回 400 错误请求

[英]POST request return 400 Bad request

I have a problem with a POST request to the server.我对服务器的 POST 请求有问题。 Thanks to basic auth I managed to authenticate but the request still returns 400 Bad Request.多亏了基本身份验证,我设法进行了身份验证,但请求仍然返回 400 Bad Request。 Do you know what I am doing wrong.你知道我做错了什么吗。 The same points through the postman application pass to 201 code.通过 postman 应用程序传递到 201 代码的相同点。

Thank you for your advice感谢您的意见

My code:我的代码:

function PostImportProduct()
{
var address = "https://logdemota-dev.st.test.cz:10351/MYSTOCKLOGISTICSTAWMSINT_DEV/V1/product";
var username = "API_TEST";
var password = "xxxxxx";

// Define the request body JSON string
var requestBody = '{"extIsId":"abc/777","productCode":"ExterniKodSort","name":"TA_API777","type":0,"measurementUnitCode":"KS","weightGross":1.1,"weightNett":1.1,"grossDimension":{"height":1.1,"width":1.1,"depth":1.1,"volume":1.1},"pictureUrl":"www.aaa.cz/SORT.png","expirationMandatory":1,"serialNumbersRecords":{"inboundMandatory":1,"outboundMandatory":1},"batches":1,"barcodes":[{"barcode":123456,"active":1,"default":1,"measurementUnitCode":"ks"}]}surementUnitCode":"KS","warehouseCode":"3S20","weightGross":10.5,"weightNett":9.5,"grossDimension":{"height":2,"width":1.5,"depth":3.5,"volume":10.5},"pictureUrl":"","expirationMandatory":1,"serialNumbersRecords":{"inboundMandatory":1,"outboundMandatory":1},"batches":1,"barcodes":[{"barcode":"EAN80","active":1,"default":1,"measurementUnitCode":"KS"},{"barcode":"EAN81","active":1,"default":0,"measurementUnitCode":"KS"}]}';

// Convert the user credentials to base64 for preemptive authentication
var credentials = aqConvert.VarToStr(dotNET.System.Convert.ToBase64String
(dotNET.System_Text.Encoding.UTF8.GetBytes_2(username + ":" + password)));

Log.Message(credentials)

var aqHttpRequest = aqHttp.CreatePostRequest(address, username, password);
// Send the Authorization header with a request
aqHttpRequest.SetHeader("Authorization", "Basic " + credentials);

var aqHttpResponse = aqHttpRequest.Send(requestBody);

// Read the response data
Log.Message(aqHttpResponse.AllHeaders); // All headers

Log.Message(aqHttpResponse.StatusCode); // A status code
Log.Message(aqHttpResponse.StatusText); // A status text
Log.Message(aqHttpResponse.Text); // A response body
}```

Have you tried json.stringfy()?你试过 json.stringfy() 吗?

var requestBody = JSON.stringify({
                    extIsId: "abc/777",
                    productCode: "ExterniKodSort",
                    name: "TA_API777"
                    .... // add all params you need
                })
var aqHttpResponse = aqHttpRequest.Send(requestBody);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM