JSON api - Bad Request 400 Error

latronamarran
Member Posts: 24
Hello everybody,
I'm trying to send some orders from NAV2016 in JSON format via an api.
First i checked the api connection with GET method and succesfully get the hello world response from the api's test connection url.
Then i created the json file, and tried the POST method with it but geting the Bad Request 400 error.
Here's my code.
I copied the same JSonText (which i also saved in a .txt file) and test it with the Postman application with the same credentials and everything and it succeded. Now i'm missing something but couldn't figure it out. Any tip for me?
I'm trying to send some orders from NAV2016 in JSON format via an api.
First i checked the api connection with GET method and succesfully get the hello world response from the api's test connection url.
Then i created the json file, and tried the POST method with it but geting the Bad Request 400 error.
Here's my code.
HttpWebRequest := HttpWebRequest.Create('https://api.order'); HttpWebRequest.Timeout := 30000; HttpWebRequest.Headers.Add('Authorization','Basic username-pass'); HttpWebRequest.PreAuthenticate := TRUE; HttpWebRequest.ContentType := 'application/json'; HttpWebRequest.Method := 'POST'; CookieContainer := CookieContainer.CookieContainer; HttpWebRequest.CookieContainer := CookieContainer; RequestStr := HttpWebRequest.GetRequestStream; StreamWriter := StreamWriter.StreamWriter(RequestStr,Encoding.UTF8); StreamWriter.Write(JSonText); StreamWriter.Flush; HttpWebResponse := HttpWebRequest.GetResponse; GetResponseStream(HttpWebResponse,ResponseString);
I copied the same JSonText (which i also saved in a .txt file) and test it with the Postman application with the same credentials and everything and it succeded. Now i'm missing something but couldn't figure it out. Any tip for me?
0
Answers
-
Hi,
The username-pass need to be encoded in Base64. You can use Fiddler Text wizard for this or other tools that convert string to Base64.
you should convert username:password to Base64 then put the result into below headers
HttpWebRequest.Headers.Add('Authorization','Basic UsernamePasswordinBase64');0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions