Ajout du HttpClient
This commit is contained in:
10
.idea/artifacts/cURLing_jar.xml
generated
Normal file
10
.idea/artifacts/cURLing_jar.xml
generated
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<component name="ArtifactManager">
|
||||||
|
<artifact name="cURLing:jar">
|
||||||
|
<output-path>$PROJECT_DIR$/out/artifacts/cURLing_jar</output-path>
|
||||||
|
<root id="root">
|
||||||
|
<element id="archive" name="cURLing.jar">
|
||||||
|
<element id="module-output" name="cURLing" />
|
||||||
|
</element>
|
||||||
|
</root>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="false" project-jdk-name="11" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
58
.idea/workspace.xml
generated
58
.idea/workspace.xml
generated
@@ -1,19 +1,60 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
|
<component name="ArtifactsWorkspaceSettings">
|
||||||
|
<artifacts-to-build>
|
||||||
|
<artifact name="Release" />
|
||||||
|
</artifacts-to-build>
|
||||||
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="e7334e23-5435-4e6d-8822-56d062382d3d" name="Default Changelist" comment="" />
|
<list default="true" id="e7334e23-5435-4e6d-8822-56d062382d3d" name="Default Changelist" comment="">
|
||||||
|
<change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/src/META-INF/MANIFEST.MF" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/src/ovh/alexisdelhaie/curling/dataSet/HeaderModel.java" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/src/ovh/alexisdelhaie/curling/web/Client.java" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/src/ovh/alexisdelhaie/curling/web/Method.java" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/src/ovh/alexisdelhaie/curling/web/RequestError.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/cURLing.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cURLing.iml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/ovh/alexisdelhaie/curling/windows/AddHeader.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/ovh/alexisdelhaie/curling/windows/AddHeader.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/ovh/alexisdelhaie/curling/windows/BasicAuthenticationDialog.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/ovh/alexisdelhaie/curling/windows/BasicAuthenticationDialog.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/ovh/alexisdelhaie/curling/windows/FormEncodedDialog.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/ovh/alexisdelhaie/curling/windows/FormEncodedDialog.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/ovh/alexisdelhaie/curling/windows/MainWindow.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/ovh/alexisdelhaie/curling/windows/MainWindow.form" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/ovh/alexisdelhaie/curling/windows/MainWindow.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/ovh/alexisdelhaie/curling/windows/MainWindow.java" afterDir="false" />
|
||||||
|
</list>
|
||||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
</component>
|
</component>
|
||||||
|
<component name="FileTemplateManagerImpl">
|
||||||
|
<option name="RECENT_TEMPLATES">
|
||||||
|
<list>
|
||||||
|
<option value="Enum" />
|
||||||
|
<option value="Class" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
|
</component>
|
||||||
<component name="ProjectId" id="1SIKwW06CzaPdxUFr949xYvEVL0" />
|
<component name="ProjectId" id="1SIKwW06CzaPdxUFr949xYvEVL0" />
|
||||||
<component name="PropertiesComponent">
|
<component name="PropertiesComponent">
|
||||||
|
<property name="GenerateAntBuildDialog.backupFiles" value="true" />
|
||||||
|
<property name="GenerateAntBuildDialog.enableUiFormCompile" value="true" />
|
||||||
|
<property name="GenerateAntBuildDialog.forceTargetJdk" value="true" />
|
||||||
|
<property name="GenerateAntBuildDialog.generateSingleFile" value="true" />
|
||||||
|
<property name="GenerateAntBuildDialog.outputFileNameProperty" value="curling" />
|
||||||
|
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
|
||||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||||
<property name="aspect.path.notification.shown" value="true" />
|
<property name="aspect.path.notification.shown" value="true" />
|
||||||
<property name="last_opened_file_path" value="$USER_HOME$/IdeaProjects" />
|
<property name="last_opened_file_path" value="$USER_HOME$/IdeaProjects" />
|
||||||
<property name="nodejs_package_manager_path" value="npm" />
|
<property name="nodejs_package_manager_path" value="npm" />
|
||||||
|
<property name="project.structure.last.edited" value="Artifacts" />
|
||||||
|
<property name="project.structure.proportion" value="0.15" />
|
||||||
|
<property name="project.structure.side.proportion" value="0.2" />
|
||||||
|
<property name="settings.editor.selected.configurable" value="preferences.lookFeel" />
|
||||||
</component>
|
</component>
|
||||||
<component name="RunDashboard">
|
<component name="RunDashboard">
|
||||||
<option name="ruleStates">
|
<option name="ruleStates">
|
||||||
@@ -60,10 +101,25 @@
|
|||||||
<workItem from="1571245913529" duration="122000" />
|
<workItem from="1571245913529" duration="122000" />
|
||||||
<workItem from="1571246060512" duration="9854000" />
|
<workItem from="1571246060512" duration="9854000" />
|
||||||
<workItem from="1571255923711" duration="810000" />
|
<workItem from="1571255923711" duration="810000" />
|
||||||
|
<workItem from="1571330910099" duration="9724000" />
|
||||||
|
<workItem from="1571341924674" duration="72000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="TypeScriptGeneratedFilesManager">
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
<option name="version" value="1" />
|
<option name="version" value="1" />
|
||||||
</component>
|
</component>
|
||||||
|
<component name="Vcs.Log.Tabs.Properties">
|
||||||
|
<option name="TAB_STATES">
|
||||||
|
<map>
|
||||||
|
<entry key="MAIN">
|
||||||
|
<value>
|
||||||
|
<State>
|
||||||
|
<option name="COLUMN_ORDER" />
|
||||||
|
</State>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
</project>
|
</project>
|
||||||
3
bin/META-INF/MANIFEST.MF
Normal file
3
bin/META-INF/MANIFEST.MF
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
Manifest-Version: 1.0
|
||||||
|
Main-Class: ovh.alexisdelhaie.curling.Runtime
|
||||||
|
|
||||||
BIN
bin/com/intellij/uiDesigner/core/AbstractLayout.class
Normal file
BIN
bin/com/intellij/uiDesigner/core/AbstractLayout.class
Normal file
Binary file not shown.
BIN
bin/com/intellij/uiDesigner/core/DimensionInfo.class
Normal file
BIN
bin/com/intellij/uiDesigner/core/DimensionInfo.class
Normal file
Binary file not shown.
BIN
bin/com/intellij/uiDesigner/core/GridConstraints.class
Normal file
BIN
bin/com/intellij/uiDesigner/core/GridConstraints.class
Normal file
Binary file not shown.
BIN
bin/com/intellij/uiDesigner/core/GridLayoutManager.class
Normal file
BIN
bin/com/intellij/uiDesigner/core/GridLayoutManager.class
Normal file
Binary file not shown.
BIN
bin/com/intellij/uiDesigner/core/HorizontalInfo.class
Normal file
BIN
bin/com/intellij/uiDesigner/core/HorizontalInfo.class
Normal file
Binary file not shown.
BIN
bin/com/intellij/uiDesigner/core/LayoutState.class
Normal file
BIN
bin/com/intellij/uiDesigner/core/LayoutState.class
Normal file
Binary file not shown.
BIN
bin/com/intellij/uiDesigner/core/Spacer.class
Normal file
BIN
bin/com/intellij/uiDesigner/core/Spacer.class
Normal file
Binary file not shown.
Binary file not shown.
BIN
bin/com/intellij/uiDesigner/core/SupportCode.class
Normal file
BIN
bin/com/intellij/uiDesigner/core/SupportCode.class
Normal file
Binary file not shown.
BIN
bin/com/intellij/uiDesigner/core/Util.class
Normal file
BIN
bin/com/intellij/uiDesigner/core/Util.class
Normal file
Binary file not shown.
BIN
bin/com/intellij/uiDesigner/core/VerticalInfo.class
Normal file
BIN
bin/com/intellij/uiDesigner/core/VerticalInfo.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/Runtime.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/Runtime.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/dataSet/HeaderModel.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/dataSet/HeaderModel.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/web/Client$1.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/web/Client$1.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/web/Client.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/web/Client.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/web/Method.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/web/Method.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/web/RequestError.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/web/RequestError.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/windows/AddHeader$1.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/windows/AddHeader$1.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/windows/AddHeader$2.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/windows/AddHeader$2.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/windows/AddHeader$3.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/windows/AddHeader$3.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/windows/AddHeader$4.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/windows/AddHeader$4.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/windows/AddHeader.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/windows/AddHeader.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/windows/FormEncodedDialog$1.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/windows/FormEncodedDialog$1.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/windows/FormEncodedDialog$2.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/windows/FormEncodedDialog$2.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/windows/FormEncodedDialog$3.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/windows/FormEncodedDialog$3.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/windows/FormEncodedDialog$4.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/windows/FormEncodedDialog$4.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/windows/FormEncodedDialog.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/windows/FormEncodedDialog.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/windows/MainWindow$1.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/windows/MainWindow$1.class
Normal file
Binary file not shown.
BIN
bin/ovh/alexisdelhaie/curling/windows/MainWindow.class
Normal file
BIN
bin/ovh/alexisdelhaie/curling/windows/MainWindow.class
Normal file
Binary file not shown.
132
cURLing.iml
132
cURLing.iml
@@ -25,137 +25,5 @@
|
|||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="module-library">
|
|
||||||
<library name="org.eclipse.osgi_3.15.0.v20190830-1434.jar">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.osgi_3.15.0.v20190830-1434.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.osgi_3.15.0.v20190830-1434.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</orderEntry>
|
|
||||||
<orderEntry type="module-library">
|
|
||||||
<library name="org.eclipse.core.commands_3.9.500.v20190805-1157.jar">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.core.commands_3.9.500.v20190805-1157.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.core.commands_3.9.500.v20190805-1157.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</orderEntry>
|
|
||||||
<orderEntry type="module-library">
|
|
||||||
<library name="org.eclipse.equinox.common_3.10.500.v20190815-1535.jar">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.equinox.common_3.10.500.v20190815-1535.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.equinox.common_3.10.500.v20190815-1535.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</orderEntry>
|
|
||||||
<orderEntry type="module-library">
|
|
||||||
<library name="org.eclipse.equinox.registry_3.8.500.v20190714-1850.jar">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.equinox.registry_3.8.500.v20190714-1850.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.equinox.registry_3.8.500.v20190714-1850.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</orderEntry>
|
|
||||||
<orderEntry type="module-library">
|
|
||||||
<library name="org.eclipse.core.runtime_3.16.0.v20190823-1314.jar">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.core.runtime_3.16.0.v20190823-1314.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.core.runtime_3.16.0.v20190823-1314.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</orderEntry>
|
|
||||||
<orderEntry type="module-library">
|
|
||||||
<library name="org.eclipse.text_3.9.0.v20190826-1019.jar">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.text_3.9.0.v20190826-1019.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.text_3.9.0.v20190826-1019.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</orderEntry>
|
|
||||||
<orderEntry type="module-library">
|
|
||||||
<library name="org.eclipse.swt.gtk.linux.x86_64_3.112.0.v20190904-0609.jar">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.swt.gtk.linux.x86_64_3.112.0.v20190904-0609.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.swt.gtk.linux.x86_64_3.112.0.v20190904-0609.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</orderEntry>
|
|
||||||
<orderEntry type="module-library">
|
|
||||||
<library name="org.eclipse.jface_3.17.0.v20190820-1444.jar">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.jface_3.17.0.v20190820-1444.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.jface_3.17.0.v20190820-1444.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</orderEntry>
|
|
||||||
<orderEntry type="module-library">
|
|
||||||
<library name="org.eclipse.jface.text_3.15.300.v20190819-0725.jar">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.jface.text_3.15.300.v20190819-0725.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.jface.text_3.15.300.v20190819-0725.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</orderEntry>
|
|
||||||
<orderEntry type="module-library">
|
|
||||||
<library name="org.eclipse.ui.workbench_3.116.0.v20190826-1428.jar">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.ui.workbench_3.116.0.v20190826-1428.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.ui.workbench_3.116.0.v20190826-1428.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</orderEntry>
|
|
||||||
<orderEntry type="module-library">
|
|
||||||
<library name="com.ibm.icu_64.2.0.v20190507-1337.jar">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/com.ibm.icu_64.2.0.v20190507-1337.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/com.ibm.icu_64.2.0.v20190507-1337.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</orderEntry>
|
|
||||||
<orderEntry type="module-library">
|
|
||||||
<library name="org.eclipse.ui.forms_3.8.100.v20190625-1825.jar">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.ui.forms_3.8.100.v20190625-1825.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$USER_HOME$/.p2/pool/plugins/org.eclipse.ui.forms_3.8.100.v20190625-1825.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</orderEntry>
|
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
3
src/META-INF/MANIFEST.MF
Normal file
3
src/META-INF/MANIFEST.MF
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
Manifest-Version: 1.0
|
||||||
|
Main-Class: ovh.alexisdelhaie.curling.Runtime
|
||||||
|
|
||||||
20
src/ovh/alexisdelhaie/curling/dataSet/HeaderModel.java
Normal file
20
src/ovh/alexisdelhaie/curling/dataSet/HeaderModel.java
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
package ovh.alexisdelhaie.curling.dataSet;
|
||||||
|
|
||||||
|
public class HeaderModel {
|
||||||
|
|
||||||
|
private String key;
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
public HeaderModel(String key, String value) {
|
||||||
|
this.key = key;
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
128
src/ovh/alexisdelhaie/curling/web/Client.java
Normal file
128
src/ovh/alexisdelhaie/curling/web/Client.java
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
package ovh.alexisdelhaie.curling.web;
|
||||||
|
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
|
import java.net.http.HttpClient;
|
||||||
|
import java.net.http.HttpRequest;
|
||||||
|
import java.net.http.HttpResponse;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
public class Client {
|
||||||
|
|
||||||
|
private String body;
|
||||||
|
private Map<String, String> headers;
|
||||||
|
private Method method;
|
||||||
|
private String url;
|
||||||
|
private RequestError error;
|
||||||
|
|
||||||
|
private String log;
|
||||||
|
|
||||||
|
public String getBody() {
|
||||||
|
return body;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getHeaders() {
|
||||||
|
return headers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Method getMethod() {
|
||||||
|
return method;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUrl() {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RequestError getError() {
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBody(String body) {
|
||||||
|
this.body = body;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHeaders(Map<String, String> headers) {
|
||||||
|
this.headers = headers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMethod(Method method) {
|
||||||
|
this.method = method;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrl(String url) {
|
||||||
|
this.url = url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Client(String body, Map<String, String> headers, Method method, String url) {
|
||||||
|
this.body = body;
|
||||||
|
this.headers = headers;
|
||||||
|
this.method = method;
|
||||||
|
this.url = url;
|
||||||
|
this.log = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public CompletableFuture<String> run() {
|
||||||
|
|
||||||
|
HttpClient httpClient = HttpClient.newBuilder().build();
|
||||||
|
try {
|
||||||
|
HttpRequest request = requestBuilder();
|
||||||
|
|
||||||
|
if (request != null) {
|
||||||
|
return CompletableFuture.supplyAsync(() -> {
|
||||||
|
String result = String.format("%s\n\n", log);
|
||||||
|
try {
|
||||||
|
HttpResponse r = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
|
||||||
|
result += String.format("> Status : %d\n", r.statusCode());
|
||||||
|
for(Map.Entry<String, List<String>> header : r.headers().map().entrySet()) {
|
||||||
|
result += String.format("> %s: ", header.getKey());
|
||||||
|
for(String s : header.getValue()) {
|
||||||
|
result += s;
|
||||||
|
}
|
||||||
|
result += "\n";
|
||||||
|
}
|
||||||
|
result += String.format("\n%s", (String)r.body());
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
|
error = new RequestError("Requete invalide", "La requete est vide");
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (URISyntaxException e) {
|
||||||
|
error = new RequestError("URL invalide", "Le format de l'URL est invalide", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private HttpRequest requestBuilder() throws URISyntaxException {
|
||||||
|
log += "< ";
|
||||||
|
HttpRequest.Builder b;
|
||||||
|
b = HttpRequest.newBuilder(new URI(url));
|
||||||
|
switch (method) {
|
||||||
|
case GET: b.GET(); log += "GET"; break;
|
||||||
|
case POST: b.POST(HttpRequest.BodyPublishers.ofString(body)); log += "POST"; break;
|
||||||
|
case PUT: b.PUT(HttpRequest.BodyPublishers.ofString(body)); log += "PUT"; break;
|
||||||
|
case DELETE: b.DELETE(); log += "DELETE"; break;
|
||||||
|
}
|
||||||
|
log += String.format(" %s\n", url);
|
||||||
|
for (Map.Entry<String, String> header : headers.entrySet()) {
|
||||||
|
b.setHeader(header.getKey(), header.getValue());
|
||||||
|
log += String.format("< %s: %s", header.getKey(), header.getValue());
|
||||||
|
}
|
||||||
|
if(method == Method.POST || method == Method.PUT) {
|
||||||
|
log += String.format("%s", body);
|
||||||
|
}
|
||||||
|
return b.build();
|
||||||
|
}
|
||||||
|
}
|
||||||
8
src/ovh/alexisdelhaie/curling/web/Method.java
Normal file
8
src/ovh/alexisdelhaie/curling/web/Method.java
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
package ovh.alexisdelhaie.curling.web;
|
||||||
|
|
||||||
|
public enum Method {
|
||||||
|
GET,
|
||||||
|
POST,
|
||||||
|
PUT,
|
||||||
|
DELETE
|
||||||
|
}
|
||||||
34
src/ovh/alexisdelhaie/curling/web/RequestError.java
Normal file
34
src/ovh/alexisdelhaie/curling/web/RequestError.java
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
package ovh.alexisdelhaie.curling.web;
|
||||||
|
|
||||||
|
public class RequestError {
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
private String message;
|
||||||
|
private Exception e;
|
||||||
|
|
||||||
|
public RequestError(String title, String message, Exception exception) {
|
||||||
|
this.title = title;
|
||||||
|
this.message = message;
|
||||||
|
this.e = exception;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RequestError(String title, String message) {
|
||||||
|
this(title, message, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMessage() {
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Exception getException() {
|
||||||
|
return e;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasException() {
|
||||||
|
return (e != null);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package ovh.alexisdelhaie.curling.windows;
|
package ovh.alexisdelhaie.curling.windows;
|
||||||
|
|
||||||
|
import ovh.alexisdelhaie.curling.dataSet.HeaderModel;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.event.*;
|
import java.awt.event.*;
|
||||||
|
|
||||||
@@ -13,10 +15,9 @@ public class AddHeader extends JDialog {
|
|||||||
private JTextField keyField;
|
private JTextField keyField;
|
||||||
private JTextField valueField;
|
private JTextField valueField;
|
||||||
|
|
||||||
private String value;
|
private HeaderModel result;
|
||||||
|
|
||||||
public AddHeader() {
|
public AddHeader() {
|
||||||
this.value = "";
|
|
||||||
setContentPane(contentPane);
|
setContentPane(contentPane);
|
||||||
setModal(true);
|
setModal(true);
|
||||||
setTitle(WINDOW_TITLE);
|
setTitle(WINDOW_TITLE);
|
||||||
@@ -51,11 +52,8 @@ public class AddHeader extends JDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void onOK() {
|
private void onOK() {
|
||||||
if(!keyField.getText().isBlank()) {
|
if(!keyField.getText().isBlank() && !valueField.getText().isBlank()) {
|
||||||
value = keyField.getText();
|
result = new HeaderModel(keyField.getText(), valueField.getText());
|
||||||
if(!valueField.getText().isBlank()) {
|
|
||||||
value += String.format(": %s", valueField.getText());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
dispose();
|
dispose();
|
||||||
}
|
}
|
||||||
@@ -64,9 +62,9 @@ public class AddHeader extends JDialog {
|
|||||||
dispose();
|
dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getValue() {
|
public HeaderModel getValue() {
|
||||||
pack();
|
pack();
|
||||||
setVisible(true);
|
setVisible(true);
|
||||||
return value;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package ovh.alexisdelhaie.curling.windows;
|
package ovh.alexisdelhaie.curling.windows;
|
||||||
|
|
||||||
|
import ovh.alexisdelhaie.curling.dataSet.HeaderModel;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.event.*;
|
import java.awt.event.*;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
@@ -7,7 +9,7 @@ import java.util.Base64;
|
|||||||
|
|
||||||
public class BasicAuthenticationDialog extends JDialog {
|
public class BasicAuthenticationDialog extends JDialog {
|
||||||
|
|
||||||
public static String HTTP_AUTH_BASIC_PATTERN = "Authorization: Basic %s";
|
public static String HTTP_AUTH_HEADER_KEY = "Authorization";
|
||||||
public static String WINDOW_TITLE = "Authentification HTTP";
|
public static String WINDOW_TITLE = "Authentification HTTP";
|
||||||
|
|
||||||
private JPanel contentPane;
|
private JPanel contentPane;
|
||||||
@@ -16,7 +18,7 @@ public class BasicAuthenticationDialog extends JDialog {
|
|||||||
private JTextField textField1;
|
private JTextField textField1;
|
||||||
private JPasswordField passwordField1;
|
private JPasswordField passwordField1;
|
||||||
|
|
||||||
private String value = "";
|
private HeaderModel result;
|
||||||
|
|
||||||
public BasicAuthenticationDialog() {
|
public BasicAuthenticationDialog() {
|
||||||
setContentPane(contentPane);
|
setContentPane(contentPane);
|
||||||
@@ -60,7 +62,7 @@ public class BasicAuthenticationDialog extends JDialog {
|
|||||||
.encode(String.format("%s:%s", user, password).getBytes());
|
.encode(String.format("%s:%s", user, password).getBytes());
|
||||||
try {
|
try {
|
||||||
String authEncoded = new String(authEncodedBytes, "UTF-8");
|
String authEncoded = new String(authEncodedBytes, "UTF-8");
|
||||||
value = String.format(HTTP_AUTH_BASIC_PATTERN, authEncoded);
|
result = new HeaderModel(HTTP_AUTH_HEADER_KEY,String.format("Basic %s", authEncoded));
|
||||||
dispose();
|
dispose();
|
||||||
} catch (UnsupportedEncodingException ex) {
|
} catch (UnsupportedEncodingException ex) {
|
||||||
JOptionPane.showMessageDialog(this, "Le format UTF-8 n'est pas supporté");
|
JOptionPane.showMessageDialog(this, "Le format UTF-8 n'est pas supporté");
|
||||||
@@ -82,9 +84,9 @@ public class BasicAuthenticationDialog extends JDialog {
|
|||||||
dispose();
|
dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String showDialog() {
|
public HeaderModel showDialog() {
|
||||||
pack();
|
pack();
|
||||||
setVisible(true);
|
setVisible(true);
|
||||||
return value;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ import java.util.Base64;
|
|||||||
public class FormEncodedDialog extends JDialog {
|
public class FormEncodedDialog extends JDialog {
|
||||||
|
|
||||||
public static String WINDOW_TITLE = "Formulaire de données";
|
public static String WINDOW_TITLE = "Formulaire de données";
|
||||||
|
public static String[] UNENCODED_CHAR = {"!", "*", "'", "(", ")", ";", ":", "@", "&", "=", "+", "$", ",", "/", "?", "#", "[", "]"};
|
||||||
|
public static String[] ENCODED_CHAR = {"%21", "%2A", "%27", "%28", "%29", "%3B", "%3A", "%40", "%26", "%3D", "%2B", "%24", "%2C", "%2F", "%3F", "%23", "%5B", "%5D"};
|
||||||
|
|
||||||
private JPanel contentPane;
|
private JPanel contentPane;
|
||||||
private JButton buttonOK;
|
private JButton buttonOK;
|
||||||
@@ -20,8 +22,6 @@ public class FormEncodedDialog extends JDialog {
|
|||||||
|
|
||||||
private String resultValue = "";
|
private String resultValue = "";
|
||||||
private DefaultListModel<String> model;
|
private DefaultListModel<String> model;
|
||||||
public static String[] UNENCODED_CHAR = {"!", "*", "'", "(", ")", ";", ":", "@", "&", "=", "+", "$", ",", "/", "?", "#", "[", "]"};
|
|
||||||
public static String[] ENCODED_CHAR = {"%21", "%2A", "%27", "%28", "%29", "%3B", "%3A", "%40", "%26", "%3D", "%2B", "%24", "%2C", "%2F", "%3F", "%23", "%5B", "%5D"};
|
|
||||||
|
|
||||||
public FormEncodedDialog() {
|
public FormEncodedDialog() {
|
||||||
setContentPane(contentPane);
|
setContentPane(contentPane);
|
||||||
|
|||||||
@@ -8,18 +8,7 @@
|
|||||||
<properties/>
|
<properties/>
|
||||||
<border type="none" title="cURLing"/>
|
<border type="none" title="cURLing"/>
|
||||||
<children>
|
<children>
|
||||||
<component id="15009" class="javax.swing.JTextArea" binding="textArea1" default-binding="true">
|
<component id="b4b69" class="javax.swing.JComboBox" binding="httpTypeBox">
|
||||||
<constraints>
|
|
||||||
<grid row="0" column="3" row-span="5" col-span="2" vsize-policy="6" hsize-policy="6" anchor="0" fill="3" indent="0" use-parent-layout="false">
|
|
||||||
<preferred-size width="150" height="50"/>
|
|
||||||
</grid>
|
|
||||||
</constraints>
|
|
||||||
<properties>
|
|
||||||
<editable value="false"/>
|
|
||||||
<focusable value="false"/>
|
|
||||||
</properties>
|
|
||||||
</component>
|
|
||||||
<component id="b4b69" class="javax.swing.JComboBox" binding="comboBox1" default-binding="true">
|
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="1" indent="0" use-parent-layout="false"/>
|
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="1" indent="0" use-parent-layout="false"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
@@ -30,7 +19,7 @@
|
|||||||
</model>
|
</model>
|
||||||
</properties>
|
</properties>
|
||||||
</component>
|
</component>
|
||||||
<component id="dc7ca" class="javax.swing.JComboBox" binding="comboBox2" default-binding="true">
|
<component id="dc7ca" class="javax.swing.JComboBox" binding="methodBox">
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="1" indent="0" use-parent-layout="false"/>
|
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="1" indent="0" use-parent-layout="false"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
@@ -43,7 +32,7 @@
|
|||||||
</model>
|
</model>
|
||||||
</properties>
|
</properties>
|
||||||
</component>
|
</component>
|
||||||
<component id="3d00f" class="javax.swing.JTextField" binding="textField1" default-binding="true">
|
<component id="3d00f" class="javax.swing.JTextField" binding="urlField">
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="0" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
|
<grid row="0" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
|
||||||
<preferred-size width="150" height="-1"/>
|
<preferred-size width="150" height="-1"/>
|
||||||
@@ -131,11 +120,27 @@
|
|||||||
<grid row="5" column="3" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
<grid row="5" column="3" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<properties>
|
<properties>
|
||||||
<enabled value="false"/>
|
<enabled value="true"/>
|
||||||
<label value="Start"/>
|
<label value="Start"/>
|
||||||
<text value="Start"/>
|
<text value="Start"/>
|
||||||
</properties>
|
</properties>
|
||||||
</component>
|
</component>
|
||||||
|
<scrollpane id="1b18">
|
||||||
|
<constraints>
|
||||||
|
<grid row="0" column="3" row-span="5" col-span="2" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties/>
|
||||||
|
<border type="none"/>
|
||||||
|
<children>
|
||||||
|
<component id="42347" class="javax.swing.JTextArea" binding="httpResponseArea">
|
||||||
|
<constraints/>
|
||||||
|
<properties>
|
||||||
|
<editable value="false"/>
|
||||||
|
<font name="Courier 10 Pitch" size="12"/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
</children>
|
||||||
|
</scrollpane>
|
||||||
</children>
|
</children>
|
||||||
</grid>
|
</grid>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -1,17 +1,31 @@
|
|||||||
package ovh.alexisdelhaie.curling.windows;
|
package ovh.alexisdelhaie.curling.windows;
|
||||||
|
|
||||||
|
import ovh.alexisdelhaie.curling.dataSet.HeaderModel;
|
||||||
|
import ovh.alexisdelhaie.curling.web.Client;
|
||||||
|
import ovh.alexisdelhaie.curling.web.Method;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.net.http.HttpClient;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
public class MainWindow extends JDialog {
|
public class MainWindow extends JDialog {
|
||||||
|
|
||||||
private DefaultListModel<String> model;
|
public static int WINDOW_HEIGHT = 700;
|
||||||
|
public static int WINDOW_WIDTH = 1100;
|
||||||
|
public static String WINDOW_TITLE = "cURLing";
|
||||||
|
public static String CONTENT_TYPE = "content-type";
|
||||||
|
public static String WWW_FORM_URLENCODED = "application/x-www-form-urlencoded";
|
||||||
|
|
||||||
private JPanel contentPane;
|
private JPanel contentPane;
|
||||||
private JTextField textField1;
|
private JTextField urlField;
|
||||||
private JTextArea textArea1;
|
private JTextArea httpResponseArea;
|
||||||
private JComboBox comboBox1;
|
private JComboBox httpTypeBox;
|
||||||
private JComboBox comboBox2;
|
private JComboBox methodBox;
|
||||||
private JButton xFormEncodedButton;
|
private JButton xFormEncodedButton;
|
||||||
private JTextArea bodyArea;
|
private JTextArea bodyArea;
|
||||||
private JProgressBar progressBar1;
|
private JProgressBar progressBar1;
|
||||||
@@ -20,13 +34,14 @@ public class MainWindow extends JDialog {
|
|||||||
private JButton addAuthButton;
|
private JButton addAuthButton;
|
||||||
private JButton runButton;
|
private JButton runButton;
|
||||||
|
|
||||||
public static int WINDOW_HEIGHT = 700;
|
private DefaultListModel<String> model;
|
||||||
public static int WINDOW_WIDTH = 1100;
|
private Map<String, String> headers;
|
||||||
public static String WINDOW_TITLE = "cURLing";
|
private Map<String, String> params;
|
||||||
|
|
||||||
public MainWindow() {
|
public MainWindow() {
|
||||||
super((Dialog) null);
|
super((Dialog) null);
|
||||||
setTitle(WINDOW_TITLE);
|
setTitle(WINDOW_TITLE);
|
||||||
|
headers = new HashMap<>();
|
||||||
model = new DefaultListModel<>();
|
model = new DefaultListModel<>();
|
||||||
list1.setModel(model);
|
list1.setModel(model);
|
||||||
setContentPane(contentPane);
|
setContentPane(contentPane);
|
||||||
@@ -36,19 +51,21 @@ public class MainWindow extends JDialog {
|
|||||||
|
|
||||||
newHeaderButton.addActionListener((event) -> {
|
newHeaderButton.addActionListener((event) -> {
|
||||||
AddHeader ah = new AddHeader();
|
AddHeader ah = new AddHeader();
|
||||||
String header = ah.getValue();
|
HeaderModel h = ah.getValue();
|
||||||
model.addElement(header);
|
if(h != null) {
|
||||||
list1.updateUI();
|
headers.put(h.getKey(), h.getValue());
|
||||||
|
updateHeaderList();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
addAuthButton.addActionListener((event) -> {
|
addAuthButton.addActionListener((event) -> {
|
||||||
if(addAuthButton.isEnabled()) {
|
if(addAuthButton.isEnabled()) {
|
||||||
BasicAuthenticationDialog bad = new BasicAuthenticationDialog();
|
BasicAuthenticationDialog bad = new BasicAuthenticationDialog();
|
||||||
String auth = bad.showDialog();
|
HeaderModel h = bad.showDialog();
|
||||||
if(!auth.isBlank()) {
|
if(h != null) {
|
||||||
|
headers.put(h.getKey(), h.getValue());
|
||||||
|
updateHeaderList();
|
||||||
addAuthButton.setEnabled(false);
|
addAuthButton.setEnabled(false);
|
||||||
model.addElement(auth);
|
|
||||||
list1.updateUI();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -57,7 +74,74 @@ public class MainWindow extends JDialog {
|
|||||||
FormEncodedDialog fe = new FormEncodedDialog();
|
FormEncodedDialog fe = new FormEncodedDialog();
|
||||||
String datas = fe.showDialog();
|
String datas = fe.showDialog();
|
||||||
bodyArea.setText(datas);
|
bodyArea.setText(datas);
|
||||||
|
headers.put(CONTENT_TYPE, WWW_FORM_URLENCODED);
|
||||||
|
updateHeaderList();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
runButton.addActionListener(this::start);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateHeaderList() {
|
||||||
|
model.clear();
|
||||||
|
for(Map.Entry<String, String> entry : headers.entrySet()) {
|
||||||
|
String header = String.format("%s: %s", entry.getKey(), entry.getValue());
|
||||||
|
model.addElement(header);
|
||||||
|
}
|
||||||
|
list1.updateUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void start(ActionEvent ev) {
|
||||||
|
startLoading(true);
|
||||||
|
Client c = new Client(bodyArea.getText(), headers, getMethod(), urlBuilder());
|
||||||
|
CompletableFuture<String> f = c.run();
|
||||||
|
new Thread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
httpResponseArea.setText(f.get());
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (ExecutionException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
startLoading(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String urlBuilder() {
|
||||||
|
return String.format("%s://%s", ((String) httpTypeBox.getSelectedItem()).toLowerCase(), urlField.getText());
|
||||||
|
}
|
||||||
|
|
||||||
|
private Method getMethod() {
|
||||||
|
if (methodBox.getSelectedItem().equals("GET")) {
|
||||||
|
return Method.GET;
|
||||||
|
} else if (methodBox.getSelectedItem().equals("POST")) {
|
||||||
|
return Method.POST;
|
||||||
|
} else if (methodBox.getSelectedItem().equals("PUT")) {
|
||||||
|
return Method.PUT;
|
||||||
|
} else if (methodBox.getSelectedItem().equals("DELETE")) {
|
||||||
|
return Method.DELETE;
|
||||||
|
}
|
||||||
|
return Method.GET;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setDisabledComponents(boolean b) {
|
||||||
|
urlField.setEnabled(!b);
|
||||||
|
httpTypeBox.setEnabled(!b);
|
||||||
|
methodBox.setEnabled(!b);
|
||||||
|
xFormEncodedButton.setEnabled(!b);
|
||||||
|
bodyArea.setEnabled(!b);
|
||||||
|
list1.setEnabled(!b);
|
||||||
|
newHeaderButton.setEnabled(!b);
|
||||||
|
addAuthButton.setEnabled(!b);
|
||||||
|
runButton.setEnabled(!b);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void startLoading(boolean b) {
|
||||||
|
setDisabledComponents(b);
|
||||||
|
progressBar1.setIndeterminate(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showFrame() {
|
public void showFrame() {
|
||||||
|
|||||||
Reference in New Issue
Block a user