HttpWebRequest.nsi 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. !include MUI2.nsh
  2. !define HttpWebRequestURL `http://www.afrowsoft.co.uk/test/HttpWebRequest.php`
  3. Name `nsJSON plug-in`
  4. OutFile nsJSON_HttpWebRequest.exe
  5. RequestExecutionLevel user
  6. ShowInstDetails show
  7. !define MUI_COMPONENTSPAGE_SMALLDESC
  8. !insertmacro MUI_PAGE_COMPONENTS
  9. !insertmacro MUI_PAGE_INSTFILES
  10. !insertmacro MUI_LANGUAGE English
  11. Section
  12. CreateDirectory $EXEDIR\Output
  13. SectionEnd
  14. Section /o `POST` DATAPOST
  15. StrCpy $R0 `{ "Name": "Jonathan Doe", "Age": 23, "Formula": "a + b == 13%!", "ViewTimes": [ "10:00", "13:43", "21:19", "03:10" ] }`
  16. nsJSON::Set /tree HttpWebRequest /value `{ "Url": "${HttpWebRequestURL}", "Verb": "POST", "Agent": "Mozilla/5.0 (Windows NT 10.0; rv:10.0) Gecko/20100101 Firefox/10.0" }`
  17. DetailPrint `Send: $R0`
  18. DetailPrint `Send to: ${HttpWebRequestURL}`
  19. nsJSON::Set /tree HttpWebRequest Data /value $R0
  20. nsJSON::Set /tree HttpWebRequest Params /value `{ "a": "string", "b": true, "c": 2 }`
  21. DetailPrint `Generate: $EXEDIR\Output\HttpWebRequest.json from HttpWebRequest`
  22. nsJSON::Serialize /tree HttpWebRequest /format /file $EXEDIR\Output\HttpWebRequest.json
  23. DetailPrint `Download: ${HttpWebRequestURL}`
  24. nsJSON::Set /tree HttpWebResponse /http HttpWebRequest
  25. DetailPrint `Generate: $EXEDIR\Output\HttpWebResponse.json from HttpWebResponse`
  26. nsJSON::Serialize /tree HttpWebResponse /format /file $EXEDIR\Output\HttpWebResponse.json
  27. SectionEnd
  28. Section /o `Async POST` DATAPOSTASYNC
  29. StrCpy $R0 `{ "Name": "Jonathan Doe", "Age": 23, "Formula": "a + b == 13%!", "ViewTimes": [ "10:00", "13:43", "21:19", "03:10" ] }`
  30. nsJSON::Set /tree HttpWebRequest /value `{ "Url": "${HttpWebRequestURL}", "Verb": "POST", "Async": true }`
  31. DetailPrint `Send: $R0`
  32. DetailPrint `Send to: ${HttpWebRequestURL}`
  33. nsJSON::Set /tree HttpWebRequest Data /value $R0
  34. nsJSON::Set /tree HttpWebRequest Params /value `{ "a": "string", "b": true, "c": 2 }`
  35. DetailPrint `Generate: $EXEDIR\Output\HttpWebRequest.json from HttpWebRequest`
  36. nsJSON::Serialize /tree HttpWebRequest /format /file $EXEDIR\Output\HttpWebRequest.json
  37. DetailPrint `Download: ${HttpWebRequestURL}`
  38. nsJSON::Set /tree AsyncHttpWebResponse /http HttpWebRequest
  39. ; Wait until done.
  40. ${Do}
  41. Sleep 1000
  42. nsJSON::Wait HttpWebRequest /timeout 0
  43. Pop $R0
  44. ${If} $R0 != wait
  45. ${Break}
  46. ${EndIf}
  47. DetailPrint `Waiting...`
  48. ${Loop}
  49. DetailPrint `Finished...`
  50. DetailPrint `Generate: $EXEDIR\Output\AsyncHttpWebResponse.json from AsyncHttpWebResponse`
  51. nsJSON::Serialize /tree AsyncHttpWebResponse /format /file $EXEDIR\Output\AsyncHttpWebResponse.json
  52. SectionEnd
  53. Section /o `Raw POST` RAWDATAPOST
  54. StrCpy $R0 `Name=Jonathan+Doe&Age=23&Formula=a+%2B+b+%3D%3D+13%25%21&ViewTimes[]=10%3A00&ViewTimes[]=13%3A43&ViewTimes[]=21%3A19&ViewTimes[]=03%3A10`
  55. nsJSON::Set /tree HttpWebRequest /value `{ "Url": "${HttpWebRequestURL}", "Verb": "POST", "DataType": "Raw" }`
  56. DetailPrint `Send: $R0`
  57. DetailPrint `Send to: ${HttpWebRequestURL}`
  58. nsJSON::Set /tree HttpWebRequest Data /value `"$R0"`
  59. DetailPrint `Generate: $EXEDIR\Output\HttpWebRequest_Raw.json from HttpWebRequest`
  60. nsJSON::Serialize /tree HttpWebRequest /format /file $EXEDIR\Output\HttpWebRequest_Raw.json
  61. DetailPrint `Download: ${HttpWebRequestURL}`
  62. nsJSON::Set /tree HttpWebResponse /http HttpWebRequest
  63. DetailPrint `Generate: $EXEDIR\Output\HttpWebResponse_Raw.json from HttpWebResponse`
  64. nsJSON::Serialize /tree HttpWebResponse /format /file $EXEDIR\Output\HttpWebResponse_Raw.json
  65. SectionEnd
  66. Section /o `JSON POST` JSONPOST
  67. nsJSON::Set /tree HttpWebRequest /value `{ "Url": "${HttpWebRequestURL}", "Verb": "POST", "DataType": "JSON" }`
  68. DetailPrint `Send: $EXEDIR\Input\Example1.json`
  69. DetailPrint `Send to: ${HttpWebRequestURL}`
  70. nsJSON::Set /tree HttpWebRequest Data /file $EXEDIR\Input\Example1.json
  71. DetailPrint `Generate: $EXEDIR\Output\HttpWebRequest_JSON.json from HttpWebRequest`
  72. nsJSON::Serialize /tree HttpWebRequest /format /file $EXEDIR\Output\HttpWebRequest_JSON.json
  73. DetailPrint `Download: ${HttpWebRequestURL}`
  74. nsJSON::Set /tree HttpWebResponse /http HttpWebRequest
  75. DetailPrint `Generate: $EXEDIR\Output\HttpWebResponse_JSON.json from HttpWebResponse`
  76. nsJSON::Serialize /tree HttpWebResponse /format /file $EXEDIR\Output\HttpWebResponse_JSON.json
  77. SectionEnd
  78. LangString DataPOSTDesc ${LANG_ENGLISH} `Sends POST data and parses the JSON response`
  79. LangString DataPOSTAsyncDesc ${LANG_ENGLISH} `Asynchronously sends POST data and parses the JSON response`
  80. LangString RawDataPOSTDesc ${LANG_ENGLISH} `Sends raw POST data and parses the JSON response`
  81. LangString JSONPOSTDesc ${LANG_ENGLISH} `Sends Example1.json and parses the JSON response`
  82. !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  83. !insertmacro MUI_DESCRIPTION_TEXT ${DATAPOST} $(DataPOSTDesc)
  84. !insertmacro MUI_DESCRIPTION_TEXT ${DATAPOSTASYNC} $(DataPOSTAsyncDesc)
  85. !insertmacro MUI_DESCRIPTION_TEXT ${RAWDATAPOST} $(RawDataPOSTDesc)
  86. !insertmacro MUI_DESCRIPTION_TEXT ${JSONPOST} $(JSONPOSTDesc)
  87. !insertmacro MUI_FUNCTION_DESCRIPTION_END