Last active
April 8, 2016 11:30
-
-
Save JanneSalokoski/3166b803cc9e8d034e6024bcb1014fc9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ ./httpclient.py 127.0.0.1 8000 test.json | |
--4d6735125320465f8a8d770448b68197 | |
Content-Disposition: form-data; name="test.json"; filename="test.json" | |
{ | |
"test": { | |
"lol": "uik", | |
"uik": "lol" | |
}, | |
"uikz": "asdf" | |
} | |
--4d6735125320465f8a8d770448b68197-- |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import sys | |
import requests | |
def main(ip = "127.0.0.1", port = 8000, file = ""): | |
try: | |
r = requests.post("http://{0}:{1}/".format(ip, port), files = {file: open(file, "rb")}) | |
except: | |
r = requests.post("http://{0}:{1}/".format(ip, port), data = {"file": "empty"}) | |
print(r.text) | |
if __name__ == "__main__": | |
if len(sys.argv) == 4: | |
main(str(sys.argv[1]), int(sys.argv[2]), str(sys.argv[3])) | |
else: | |
main() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import sys | |
from urllib.parse import urlparse | |
import http.server | |
import socketserver | |
html = "<html><h1>200</h1></html>" | |
class HTTPHandler(http.server.SimpleHTTPRequestHandler): | |
def _set_headers(self, response = 200, mimetype = "text/html"): | |
self.send_response(200) | |
self.send_header("Content-type", mimetype) | |
self.end_headers() | |
def do_GET(self): | |
self._set_headers() | |
self.wfile.write(html.encode("utf-8")) | |
def do_HEAD(self): | |
self._set_headers() | |
def do_POST(self): | |
self._set_headers(mimetype = "text/json") | |
data = urlparse(self.rfile.read(int(self.headers["Content-Length"])).decode("utf-8")) | |
self.wfile.write("{0}".format(str(data.geturl())).encode("utf-8")) | |
print(data) | |
def main(server = socketserver, handler = HTTPHandler, port = 8000): | |
ip = "127.0.0.1" | |
httpd = server.TCPServer(("", port), handler) | |
print("Serving at {0}:{1}".format(ip, port)) | |
try: | |
httpd.serve_forever() | |
except KeyboardInterrupt as e: | |
httpd.shutdown() | |
httpd.socket.close() | |
print("\n", end="") # I want a newline after the ^C on my prompt | |
except: | |
pass | |
if __name__ == "__main__": | |
if len(sys.argv) > 1: | |
main(port = int(sys.argv[1])) | |
else: | |
main() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ ./httpserver.py 8000 | |
127.0.0.1 - - [08/Apr/2016 14:26:08] "POST / HTTP/1.1" 200 - | |
ParseResult(scheme='', netloc='', path='--4d6735125320465f8a8d770448b68197\r\nContent-Disposition: form-data', params=' name="test.json"; filename="test.json"\r\n\r\n{\n "test": {\n "lol": "uik",\n "uik": "lol"\n },\n "uikz": "asdf"\n}\n\r\n--4d6735125320465f8a8d770448b68197--\r\n', query='', fragment='') |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"test": { | |
"lol": "uik", | |
"uik": "lol" | |
}, | |
"uikz": "asdf" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment