import requests import re import time def submit(payload) : url = "http://jf.shuishan.net.cn/api/submission" payload = payload headers = { 'Host': 'jf.shuishan.net.cn', 'Connection': 'keep-alive', 'Content-Length': '101', 'Accept': 'application/json, text/plain, */*', 'X-CSRFToken': '6eM4EeOzqLJFt6xfkbSMQD1e89qF28Lgg5aPIbB1k7Hvu6UFVzzb2d1u5lQG37p6', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/88.0.4324.104 Safari/537.36', 'Content-Type': 'application/json;charset=UTF-8', 'Origin': 'http://jf.shuishan.net.cn', 'Referer': 'http://jf.shuishan.net.cn/problem/1-1', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'Cookie': '_ga=GA1.3.1580759526.1611565238; _gid=GA1.3.412268444.1611565238; csrftoken=6eM4EeOzqLJFt6xfkbSMQD1e89qF28Lgg5aPIbB1k7Hvu6UFVzzb2d1u5lQG37p6; sessionid=0e47tlihcjyqr3oynpx5pq9xpf7jtqml; _gat=1; sessionid=0e47tlihcjyqr3oynpx5pq9xpf7jtqml' } response = requests.request("POST", url, headers=headers, data=payload) ## print(response.text) res = response.text submit_id = re.findall(r'"submission_id": "([^"]+)"',res) submit_id = submit_id[0] with open('submit_id.txt', 'w', encoding='utf-8', newline='') as f: # 设置文件对象 f.write(submit_id) # 将字符串写入文件中 f.close() ## print(submit_id) #获取judge信息 url = "http://jf.shuishan.net.cn/api/submission?id="+str(submit_id) #url = "http://jf.shuishan.net.cn/api/submission?id=2610feac243108d927e8760f24b808c6" payload={} headers = { 'Host': 'jf.shuishan.net.cn', 'Connection': 'keep-alive', 'Accept': 'application/json, text/plain, */*', 'X-CSRFToken': '6eM4EeOzqLJFt6xfkbSMQD1e89qF28Lgg5aPIbB1k7Hvu6UFVzzb2d1u5lQG37p6', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36', 'Content-Type': 'application/json;charset=utf-8', 'Referer': 'http://jf.shuishan.net.cn/problem/1-1', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'Cookie': '_ga=GA1.3.1580759526.1611565238; _gid=GA1.3.412268444.1611565238; csrftoken=6eM4EeOzqLJFt6xfkbSMQD1e89qF28Lgg5aPIbB1k7Hvu6UFVzzb2d1u5lQG37p6; sessionid=0e47tlihcjyqr3oynpx5pq9xpf7jtqml; _gat=1; sessionid=0e47tlihcjyqr3oynpx5pq9xpf7jtqml' } #等待judgeserver出结果 time.sleep(0.5) response = requests.request("GET", url, headers=headers, data=payload) print(response.text) res = response.text result_code = re.findall(r'"result": ([^"]+),',res) error_code = re.findall(r'"error": ([^"]+),',res) result_code = result_code[1] error_code = error_code[0] print(result_code) print(error_code) if(error_code != '0' and error_code != "null"): print("ERROR_CODE") return "ERROR_CODE" elif(result_code == '0'): print("SUCCESS") return "SUCCESS" elif(result_code == '1'): print("CPU_TIME_LIMIT_EXCEEDED") return "CPU_TIME_LIMIT_EXCEEDED" elif(result_code == '2'): print("REAL_TIME_LIMIT_EXCEEDED") return "REAL_TIME_LIMIT_EXCEEDED" elif(result_code == '3'): print("MEMORY_LIMIT_EXCEEDED") return "MEMORY_LIMIT_EXCEEDED" elif(result_code == '4'): print("RUNTIME_ERROR") return "RUNTIME_ERROR" elif (result_code == '5'): print("SYSTEM_ERROR") return "SYSTEM_ERROR" else: print("WRONG_ANSWER") return "WRONG_ANSWER" #写入一个输出文件 def submit_handler(code, problem_id, language_type): with open('data.c', 'w', encoding='utf-8', newline='') as f: f.write(code) f.close() file = open('data.c', mode='r', encoding='utf-8', newline='') code = file.readlines() file.close() code = ''.join([i.replace(' ', r'\t').replace('"', r'\"').rstrip() + r'\n' for i in code]) ## print(code) # payload="{\"problem_id\":1,\"language\":\"C\",\"code\":\"# include \\nint main()\\n{\\n\\tint a;\\n\\treturn 0;\\n}\"}" # print(payload) payload = "{\"problem_id\":" + problem_id + ",\"language\":\"" + language_type + "\",\"code\":\"" + code + "\"}" ## print(payload) results = submit(payload) return results # 输入文件名,题号,语言种类 #results = submit_handler('22.c','22','C') #print(results) #获取逻辑错误信息