5fb62f7900
新增了图标、背景图、验证码素材以及音频素材等大量静态资源文件
65 lines
2.1 KiB
Plaintext
65 lines
2.1 KiB
Plaintext
<%@ WebHandler Language="C#" Class="SaveArchive" %>
|
|
using System;
|
|
using System.IO;
|
|
using System.Net;
|
|
using System.Text;
|
|
using System.Web;
|
|
|
|
public class SaveArchive : IHttpHandler
|
|
{
|
|
public bool IsReusable { get { return true; } }
|
|
public void ProcessRequest(HttpContext context)
|
|
{
|
|
context.Response.ContentType = "application/json";
|
|
try
|
|
{
|
|
string body;
|
|
using (var reader = new StreamReader(context.Request.InputStream, Encoding.UTF8)) body = reader.ReadToEnd();
|
|
var url = ResolveNodeUrl();
|
|
var req = (HttpWebRequest)WebRequest.Create(url);
|
|
req.Method = "POST";
|
|
req.ContentType = "application/json";
|
|
var data = Encoding.UTF8.GetBytes(body);
|
|
using (var s = req.GetRequestStream()) s.Write(data, 0, data.Length);
|
|
using (var resp = (HttpWebResponse)req.GetResponse())
|
|
using (var rs = resp.GetResponseStream())
|
|
using (var r = new StreamReader(rs, Encoding.UTF8))
|
|
{
|
|
var txt = r.ReadToEnd();
|
|
context.Response.Write(txt);
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
context.Response.StatusCode = 500;
|
|
var msg = "{\"ok\":false,\"error\":\"" + Escape(e.Message) + "\"}";
|
|
context.Response.Write(msg);
|
|
}
|
|
}
|
|
string ResolveNodeUrl()
|
|
{
|
|
var ports = new int[] { 8976, 5050 };
|
|
foreach (var p in ports)
|
|
{
|
|
var u = "http://localhost:" + p + "/api/archives/save";
|
|
if (Probe(u)) return u;
|
|
}
|
|
return "http://localhost:5050/api/archives/save";
|
|
}
|
|
bool Probe(string url)
|
|
{
|
|
try
|
|
{
|
|
var req = (HttpWebRequest)WebRequest.Create(url.Replace("/api/archives/save", "/api/ping"));
|
|
req.Method = "GET";
|
|
req.Timeout = 1500;
|
|
using (var resp = (HttpWebResponse)req.GetResponse()) return resp.StatusCode == HttpStatusCode.OK;
|
|
}
|
|
catch { return false; }
|
|
}
|
|
string Escape(string s)
|
|
{
|
|
return s.Replace("\\", "\\\\").Replace("\"", "\\\"");
|
|
}
|
|
}
|