2
votes

Comment traduire le code postman curl en filemaker pro via les options curl "Insérer à partir de l'URL"?

J'essayais de transférer un code curl fonctionnel dans Postman vers Filemaker, mais je n'ai pas pu le faire fonctionner.

Ce qui suit est le code curl fonctionnel de Postman:

{"Message":"An error has occurred.","ExceptionMessage":"Object reference not set to an instance of an object.","ExceptionType":"System.NullReferenceException","StackTrace":"   at Nat.Dal.DAL.DALWebApiUser.IsTokenValid(HttpRequestMessage _request, Int32 _customerID) in C:\\GIT\\nat.dal\\DAL\\DALWebApiUser.cs:line 257\r\n   at NationexWebApi.Controllers.ShippingV2Controller.GetDestinationETA(DTOETARequest _request) in C:

Ce qui suit est le code que j'ai mis dans les options curl du créateur de fichiers:

"-X POST \
  'https://apidev.nationex.com/api/ShippingV2/GetDestinationETA?ShippingID=606200005' \
  -H 'Accept: */*' \
  -H 'Authorization: XXXXXXXXXXXXXXXXX' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json' \
  -H 'Host: apidev.nationex.com' \
  -H 'Postman-Token: e9f8cf52-fbe4-4a74-8b49-d03b54c238d6,07e38ca7-19a1-49ab-a57d-11c62c398b06' \
  -H 'User-Agent: PostmanRuntime/7.11.0' \
  -H 'accept-encoding: gzip, deflate' \
  -H 'cache-control: no-cache' \
  -H 'content-length: 83' \
  -d '{
    \"CustomerID\":162450,
    \"DestPostalCode\":\"J3Y5T7\",
    \"PickupDate\":\"2019-04-29\",
}
    '"


0 commentaires

3 Réponses :


1
votes

L'erreur que vous obtenez provient de l'API et non de FileMaker.

Vous ne spécifiez pas l'URL dans les options cURL, uniquement les arguments supplémentaires.

Vous voulez probablement --show-error comme option.

Différences que vous devez connaître dans le fonctionnement de FileMaker cURL: https://fmhelp.filemaker.com/help /16/fmp/en/index.html#page/FMP_Help/curl-options.html

De plus, vous n'avez pas besoin d'échapper aux nouvelles lignes, mais vous voudrez peut-être mélanger les styles de citation entre guillemets simples et doubles.

Peut-être quelque chose comme ça (expire quand je l'essaye)

"-H \"Accept: */*\" 
-H \"Authorization: XXXXXXXXXXXXXXXXX\" 
-H \"Cache-Control: no-cache\" 
-H \"Connection: keep-alive\" 
-H \"Content-Type: application/json\" 
-H \"Host: apidev.nationex.com\" 
-H \"Postman-Token: e9f8cf52-fbe4-4a74-8b49-d03b54c238d6,07e38ca7-19a1-49ab-a57d-11c62c398b06\" 
-H \"User-Agent: PostmanRuntime/7.11.0\" 
-H \"accept-encoding: gzip, deflate\" 
-H \"cache-control: no-cache\" 
-H \"content-length: 83\" 
-d \"{
    \"CustomerID\":162450,
    \"DestPostalCode\":\"J3Y5T7\",
    \"PickupDate\":\"2019-04-29\",
}\""

Il est possible que le site de l'API soit juste cassé. Essayez de configurer votre propre service Web dans lequel vous pouvez inspecter les demandes entrantes, ou utilisez httpProxy pour examiner les demandes.


2 commentaires

Tout d'abord, merci beaucoup pour votre réponse, Sam! Il n'y a aucun problème avec le site API, car il fonctionne bien dans Postman. J'ai changé mes options CURL pour être comme ceci maintenant: "-H \" Accepter: * / * \ "-H \" Autorisation: XXXXXXXX \ "-H \" Cache-Control: no-cache \ "-H \" Connection : keep-alive \ "-H \" Content-Type: application / json \ "-H \" cache-control: no-cache \ "--ignore-content-length -d $ josn --show-error" Mais cela ne fonctionnera toujours pas. Il continue de transférer des données d'URL, mais ne charge aucune donnée, aucune erreur ne s'affiche non plus. Une idée sur la façon de résoudre ce problème?


Essayez de configurer wirehark.org/#download en tant que proxy. Pointez l'URL vers votre instance WireShark, puis essayez de soumettre depuis Postman et FileMaker, et repérez la différence.



0
votes

Essayez Generator de Geist Interactive au lieu de Postman. Vous pouvez simplement copier-coller le code FileMaker.


1 commentaires

Merci Siva, Generator est vraiment un excellent outil!



0
votes

Enfin, j'ai réussi à établir la connexion avec l'API Nationex. Voici à quoi ressemblent les options cURL fonctionnelles dans Filemaker pro:

"-H \" Autorisation: XXXXXXXXXXXXXXXXX \ "-H \" Content-Type: application / json \ "-d @ $ josn"

Merci à tous pour l'aide!


0 commentaires