using Newtonsoft.Json;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using RestSharp;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
//using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
namespace RuralPower
{
public class RuralPowerAPI
{
///
/// Post 登录接口
///
/// 接口域名
///
///
///
/// 反序列化返回的值失败,代表请求接口失败
public string Login(string url, string login_name, string real_name, string password)
{
var value = RSAHelper.EncryptData(password);
var post_data = JsonConvert.SerializeObject(new { login_name = login_name, password = value });
var src = get_page_json(url + "/unity/Login", post_data, "");
return src;
}
///
/// Post 修改密码接口
///
/// 接口域名
/// token
/// 用户id
/// 旧密码
/// 新密码
/// 反序列化返回的值失败,代表请求接口失败
public string ChangePassword(string url, string token, string LoginName, string OldPassword, string NewPassword)
{
OldPassword = RSAHelper.EncryptData(OldPassword);
NewPassword = RSAHelper.EncryptData(NewPassword);
var post_data = JsonConvert.SerializeObject(new { LoginName = LoginName, OldPassword = OldPassword, NewPassword = NewPassword });
var src = get_page_json(url + "/unity/ChangePassword", post_data, token);
return src;
}
///
/// Post 记录用户登录ip
///
/// 接口域名
/// 用户id
/// 考试id
/// 反序列化返回的值失败,代表请求接口失败
public string LogIP(string url, string token, string UserId, string ExamId, string IP)
{
var post_data = string.Format("UserId={0}&ExamId={1}&IP={2}", UserId, ExamId, IP);
var src = get_page(url + "/unity/LoginLog", post_data, token);
return src;
}
#region 考试
///
/// Get 获取当前时间已发布的考试信息接口
///
/// 接口域名
/// 考生id
/// 反序列化返回的值失败,代表请求接口失败
public string GetExam(string url, string token, string UserId, string ExamId)
{
var post_data = string.Format("UserId={0}&ExamId={1}", UserId, ExamId);
var src = get_page(url + "/unity/GetExam", post_data, token);
return src;
}
///
/// Post 开始考试接口
///
/// 接口域名
/// 考试id
/// 考生id
/// 反序列化返回的值失败,代表请求接口失败
public string StartExam(string url, string token, string ExamId, string UserId)
{
var post_data = string.Format("ExamId={0}&UserId={1}", ExamId, UserId);
var src = get_page(url + "/unity/StartExam", post_data, token);
return src;
}
///
/// Post 结束考试接口
///
/// 接口域名
/// 考试id
/// 考生id
/// 反序列化返回的值失败,代表请求接口失败
public string EndExam(string url, string token, string ExamId, string UserId)
{
var post_data = string.Format("ExamId={0}&UserId={1}", ExamId, UserId);
var src = get_page(url + "/unity/EndExam", post_data, token);
return src;
}
///
/// 操作票接口
///
///
/// 开始id
/// 用户id
/// 送电、停电
/// json数组
///
public string WriteTicket(string url, string token, string ExamId, string UserId, string Type, string data)
{
//var src = get_page_json(url + "/unity/WriteUserOperationTicket?action=writeTicket&ExamId=" + ExamId+ "&UserId="+ UserId+ "&Type="+ Type, data);
var post_data = string.Format("ExamId={0}&UserId={1}&Type={2}&data={3}", ExamId, UserId, Type, data);
var src = get_page(url + "/unity/WriteUserOperationTicket", post_data, token);
return src;
}
///
/// 查询操作票步骤,用以初始化或断点续传操作票步骤
///
///
/// 开始id
/// 用户id
/// 送电、停电
/// json数组
///
public string QueryTicketProc(string url, string token, string ExamId, string UserId, string Type)
{
var post_data = string.Format("ExamId={0}&UserId={1}&Type={2}", ExamId, UserId, Type);
var src = get_page(url + "/unity/QueryTicketProc", post_data, token);
return src;
}
///
/// 单步填写操作票步骤接口
///
///
/// 开始id
/// 用户id
/// 送电、停电
/// json数组
///
public string WriteTicketProc(string url, string token, string ExamId, string UserId, string Type, string OperationTicketId, string Score, string ScoreReason)
{
//OperationTicketId: 步骤id
//UserId :用户id
//ExamId:考试id
//Type:送电、停电
//Score: 扣分值:0:不扣分
//ScoreReason:扣分原因
var post_data = string.Format("ExamId={0}&UserId={1}&Type={2}&OperationTicketId={3}&Score={4}&ScoreReason={5}"
, ExamId, UserId, Type, OperationTicketId, Score, ScoreReason);
var src = get_page(url + "/unity/WriteTicketProc", post_data, token);
return src;
}
///
/// 查询操作票步骤,用以初始化或断点续传操作票步骤
///
///
/// 开始id
/// 用户id
/// 送电、停电
///
public string StopTicketProc(string url, string token, string ExamId, string UserId, string Type)
{
var post_data = string.Format("ExamId={0}&UserId={1}&Type={2}", ExamId, UserId, Type);
var src = get_page(url + "/unity/StopTicketProc", post_data, token);
return src;
}
///
/// Post 巡线、排故工器具接口
///
/// 接口域名
/// 参数
/// 反序列化返回的值失败,代表请求接口失败
public string AddUserTool(string url, string token, string parameter)
{
var src = get_page_json(url + "/unity/AddUserTool", parameter, token);
return src;
}
///
/// Post 保存考试故障记录接口
///
/// 接口域名
/// 参数
/// 反序列化返回的值失败,代表请求接口失败
public string AddUserFaultRecord(string url, string token, string parameter)
{
var src = get_page_json(url + "/unity/AddUserFaultRecord", parameter, token);
return src;
}
///
/// Post 上传考试选择题数据接口
///
/// 接口域名
/// 参数
/// 反序列化返回的值失败,代表请求接口失败
public string AddUserChoiceQuestion(string url, string token, string parameter)
{
var src = get_page_json(url + "/unity/AddUserChoiceQuestion", parameter, token);
return src;
}
///
/// Post 上传故障排故数据接口
///
/// 接口域名
/// 参数
/// 反序列化返回的值失败,代表请求接口失败
public string AddFaultOperation(string url, string token, string parameter)
{
var src = get_page_json(url + "/unity/AddFaultOperation", parameter, token);
return src;
}
///
/// Post 结束故障排故处理接口
///
/// 接口域名
/// 考试id
/// 用户id
/// 反序列化返回的值失败,代表请求接口失败
public string EndFaultOperation(string url, string token, string ExamId, string UserId)
{
var post_data = string.Format("ExamId={0}&UserId={1}", ExamId, UserId);
var src = get_page(url + "/unity/EndFaultOperation", post_data, token);
return src;
}
///
/// Post 选择台区上传接口
///
/// 接口域名
/// 考试id
/// 考生id
/// 选择的台区
/// 反序列化返回的值失败,代表请求接口失败
public string SelectPlatformArea(string url, string token, string ExamId, string UserId, string SelectPlatformArea)
{
var post_data = string.Format("ExamId={0}&UserId={1}&SelectPlatformArea={2}", ExamId, UserId, SelectPlatformArea);
var src = get_page(url + "/unity/SelectPlatformArea", post_data, token);
return src;
}
///
/// Post 更新验电结果接口
///
/// 接口域名
/// 考试id
/// 考生id
/// 类型 巡线、排故
/// 反序列化返回的值失败,代表请求接口失败
public string UpdateElectricity(string url, string token, string ExamId, string UserId, string Type)
{
var post_data = string.Format("ExamId={0}&UserId={1}&Type={2}", ExamId, UserId, Type);
var src = get_page(url + "/unity/UpdateElectricity", post_data, token);
return src;
}
///
/// Post 更新爬杆结果
///
/// 接口域名
/// 考试id
/// 考生id
/// 反序列化返回的值失败,代表请求接口失败
public string UpdateClimbrod(string url, string token, string ExamId, string UserId)
{
var post_data = string.Format("ExamId={0}&UserId={1}", ExamId, UserId);
var src = get_page(url + "/unity/UpdateClimbrod", post_data, token);
return src;
}
///
/// Post 更新未分闸状态拉合熔芯扣分接口
///
/// 接口域名
/// 考试id
/// 考生id
/// 反序列化返回的值失败,代表请求接口失败
public string UpdateFusibleCore(string url, string token, string ExamId, string UserId)
{
var post_data = string.Format("ExamId={0}&UserId={1}", ExamId, UserId);
var src = get_page(url + "/unity/UpdateFusibleCore", post_data, token);
return src;
}
///
/// Post 更新考试环节接口
///
/// 接口域名
/// 考试id
/// 考生id
/// 选择的台区
/// 反序列化返回的值失败,代表请求接口失败
public string UpdateExaminationLink(string url, string token, string ExamId, string UserId, string ExaminationLink)
{
var post_data = string.Format("ExamId={0}&UserId={1}&ExaminationLink={2}", ExamId, UserId, ExaminationLink);
var src = get_page(url + "/unity/UpdateExaminationLink", post_data, token);
return src;
}
///
/// Post 更新围栏接口
///
/// 接口域名
/// 考试id
/// 考生id
/// 反序列化返回的值失败,代表请求接口失败
public string UpdateEnclosure(string url, string token, string ExamId, string UserId)
{
var post_data = string.Format("ExamId={0}&UserId={1}", ExamId, UserId);
var src = get_page(url + "/unity/UpdateEnclosure", post_data, token);
return src;
}
///
/// Post 获取考试状态接口
///
/// 接口域名
/// 考试id
/// 反序列化返回的值失败,代表请求接口失败
public string GetExamStatus(string url, string token, string ExamId)
{
var post_data = string.Format("ExamId={0}", ExamId);
var src = get_page(url + "/unity/GetExamStatus", post_data, token);
return src;
}
///
/// 上传视频录屏文件
///
/// 接口域名
/// 考试id
/// 考生id
/// 视频描述
/// 视频路径
///
public string UploadFile(string url, string token, string ExamId, string UserId, string FileDesc, string FilePath)
{
try
{
//using (var httpClient = new HttpClient())
//{
// using (var request = new HttpRequestMessage(new HttpMethod("Post"), url + "/unity/UploadFile"))
// {
// request.Headers.TryAddWithoutValidation("User-Agent", "Apipost client Runtime/+https://www.apipost.cn/");
// request.Headers.TryAddWithoutValidation("Content-Type", "application/x-www-form-urlencoded");
// var multipartContent = new MultipartFormDataContent();
// multipartContent.Add(new StringContent("ExamId"), ExamId);
// multipartContent.Add(new StringContent("UserId"), UserId);
// multipartContent.Add(new StringContent("FileDesc"), FileDesc);
// multipartContent.Add(new StringContent("Files"), FilePath);
// request.Content = multipartContent;
// var task = httpClient.SendAsync(request);
// task.Wait();
// HttpResponseMessage response = task.Result;
// var result = response.Content.ReadAsStringAsync();
// string responseBodyAsText = result.Result;
// return responseBodyAsText;
// }
//}
//var mfdc = new System.Net.Http.MultipartFormDataContent();
//mfdc.Headers.Add("ContentType", "multipart/form-data");//声明头部
//mfdc.Add(new System.Net.Http.StringContent("ExamId"), ExamId);//参数, 内容在前,参数名称在后
//mfdc.Add(new System.Net.Http.StringContent("UserId"), UserId);
//mfdc.Add(new System.Net.Http.StringContent("FileDesc"), FileDesc);
//mfdc.Add(new System.Net.Http.StringContent("Files"), FilePath);
//var clientTask = new System.Net.Http.HttpClient().PostAsync(url + "/unity/UploadFile", mfdc);//发起异步请求
//clientTask.Wait();//等待请求结果
//if (clientTask.Result.IsSuccessStatusCode)
//{
// //请求正常
// var resultTask = clientTask.Result.Content.ReadAsStringAsync();//异步读取返回内容
// resultTask.Wait();//等读取返回内容
// var resultStr = resultTask.Result;//返回内容字符串
// return resultStr;
//}
//else
//{
// //请求异常
// return "请求接口出错";
//}
var client = new RestClient(url + "/unity/UploadFile");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddFile("Files", FilePath);
request.AddParameter("ExamId", ExamId);
request.AddParameter("UserId", UserId);
request.AddParameter("FileDesc", FileDesc);
IRestResponse response = client.Execute(request);
var result = response.Content;
if (!string.IsNullOrEmpty(result))
{
if (result.Contains("\ufeff"))
{
result = result.Substring(1);
}
}
return result;
}
catch (Exception ex)
{
return "";
}
}
///
/// Post 更新考试时长接口
///
/// 接口域名
/// 用户id
/// 考试id
/// 剩余考试时长
/// 反序列化返回的值失败,代表请求接口失败
public string UpdateExaminationDuration(string url, string token, string UserId, string ExamId, string ExaminationDuration)
{
var post_data = string.Format("UserId={0}&ExamId={1}&ExaminationDuration={2}", UserId, ExamId, ExaminationDuration);
var src = get_page(url + "/unity/UpdateExaminationDuration", post_data, token);
return src;
}
///
/// Post 更新场景设备状态接口
///
/// 接口域名
/// 用户id
/// 考试id
/// 剩余考试时长
/// 反序列化返回的值失败,代表请求接口失败
public string UpdateRestoreSceneMsg(string url, string token, string UserId, string ExamId, string RestoreSceneMsg)
{
var post_data = string.Format("UserId={0}&ExamId={1}&RestoreSceneMsg={2}", UserId, ExamId, RestoreSceneMsg);
var src = get_page(url + "/unity/UpdateRestoreSceneMsg", post_data, token);
return src;
}
///
/// Post 获取并更新考生考试时间
///
/// 接口域名
/// 用户id
/// 考试id
/// 1 读取, 0 更新
/// 反序列化返回的值失败,代表请求接口失败
public string UpdateUserExamTime(string url, string token, string UserId, string ExamId, string Read)
{
var post_data = string.Format("UserId={0}&ExamId={1}&Read={2}", UserId, ExamId, Read);
var src = get_page(url + "/unity/UpdateUserExamTime", post_data, token);
return src;
}
#endregion
#region 实训
///
/// Get 获取我的实训列表接口
///
/// 接口域名
/// 考生id
/// 页码
/// 每页条数
/// 反序列化返回的值失败,代表请求接口失败
public string GetTrainList(string url, string token, string UserId, string PageIndex, string PageSize)
{
var post_data = string.Format("UserId={0}&PageIndex={1}&PageSize={2}", UserId, PageIndex, PageSize);
var src = get_page(url + "/unity/GetTrainList", post_data, token);
return src;
}
#endregion
///
/// POST json转excel接口
///
/// 接口路径
/// 请求参数 json字符串
///
public byte[] JsonTurnExcel(string url, string parameter)
{
var model = new Api.json_turn_excel_request();
if (!string.IsNullOrEmpty(parameter))
{
model = JsonConvert.DeserializeObject(parameter);
}
HSSFWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();
ISheet sheet1 = workbook.CreateSheet("考试试卷");
var row1 = sheet1.CreateRow(0);//选择第1行
var cell1_1 = row1.CreateCell(0);//选择第1列
cell1_1.SetCellValue("考试名称");
var cell1_2 = row1.CreateCell(1);
cell1_2.SetCellValue("考试时长");
var cell1_3 = row1.CreateCell(2);
cell1_3.SetCellValue("开票日期");
var cell1_4 = row1.CreateCell(3);
cell1_4.SetCellValue("村组");
var cell1_5 = row1.CreateCell(4);
cell1_5.SetCellValue("台区");
var cell1_6 = row1.CreateCell(5);
cell1_6.SetCellValue("线路");
#region 设置列
IRow rowH = sheet1.CreateRow(1);
IDataFormat dataformat = workbook.CreateDataFormat();
ICellStyle cellstytle = workbook.CreateCellStyle();
cellstytle.DataFormat = dataformat.GetFormat("@");
for (int i = 0; i < 1000; i++)
{
if (i == 0)
{
sheet1.GetRow(0).GetCell(2).CellStyle = cellstytle;
}
else
{
var row = sheet1.CreateRow(i);
var cell = row.CreateCell(2);
cell.CellStyle = cellstytle;
}
}
#endregion
ISheet sheet2 = workbook.CreateSheet("考试工具");
var row2 = sheet2.CreateRow(0);//选择第1行
var cell2_1 = row2.CreateCell(0);//选择第1列
cell2_1.SetCellValue("工具名称");
var cell2_2 = row2.CreateCell(1);
cell2_2.SetCellValue("类型(工具、材料、着装)");
var cell2_3 = row2.CreateCell(2);
cell2_3.SetCellValue("用途(巡检、排故)");
ISheet sheet3 = workbook.CreateSheet("考试故障");
var row3 = sheet3.CreateRow(0);//选择第1行
var cell3_1 = row3.CreateCell(0);
cell3_1.SetCellValue("设备类型(杆塔、线档、配电箱)");
var cell3_2 = row3.CreateCell(1);
cell3_2.SetCellValue("线路");
var cell3_3 = row3.CreateCell(2);
cell3_3.SetCellValue("位置");
var cell3_4 = row3.CreateCell(3);
cell3_4.SetCellValue("缺陷类型");
var cell3_5 = row3.CreateCell(4);
cell3_5.SetCellValue("相位");
var cell3_6 = row3.CreateCell(5);
cell3_6.SetCellValue("缺陷类别");
ISheet sheet4 = workbook.CreateSheet("考试选择题");
var row4 = sheet4.CreateRow(0);//选择第1行
var cell4_1 = row4.CreateCell(0);//选择第1列
cell4_1.SetCellValue("题干");
var cell4_2 = row4.CreateCell(1);
cell4_2.SetCellValue("选项A");
var cell4_3 = row4.CreateCell(2);
cell4_3.SetCellValue("选项B");
var cell4_4 = row4.CreateCell(3);
cell4_4.SetCellValue("选项C");
var cell4_5 = row4.CreateCell(4);
cell4_5.SetCellValue("选项D");
var cell4_6 = row4.CreateCell(5);
cell4_6.SetCellValue("正确答案");
ISheet sheet5 = workbook.CreateSheet("考试操作票选项");
var row5 = sheet5.CreateRow(0);//选择第1行
var cell5_1 = row5.CreateCell(0);//选择第1列
cell5_1.SetCellValue("类型(送电、停电)");
var cell5_2 = row5.CreateCell(1);
cell5_2.SetCellValue("序号");
var cell5_3 = row5.CreateCell(2);
cell5_3.SetCellValue("内容");
if (model != null)
{
if (model.Exam != null)
{
var row = sheet1.CreateRow(1);//选择第1行
var cell1 = row.CreateCell(0);
cell1.SetCellValue(model.Exam.ExamName);
var cell2 = row.CreateCell(1);
cell2.SetCellValue(model.Exam.ExamDuration);
var cell3 = row.CreateCell(2);
cell3.SetCellValue(model.Exam.BillingDate);
cell3.CellStyle = cellstytle;
var cell4 = row.CreateCell(3);
cell4.SetCellValue(model.Exam.VillageGroup);
var cell5 = row.CreateCell(4);
cell5.SetCellValue(model.Exam.PlatformArea);
var cell6 = row.CreateCell(5);
cell6.SetCellValue(model.Exam.Line);
}
if (model.ToolList != null)
{
if (model.ToolList.Count > 0)
{
for (int i = 0; i < model.ToolList.Count; i++)
{
var row = sheet2.CreateRow(i);//选择第1行
var cell1 = row.CreateCell(0);
cell1.SetCellValue(model.ToolList[i].ToolName);
var cell2 = row.CreateCell(1);
cell2.SetCellValue(model.ToolList[i].ToolType);
var cell3 = row.CreateCell(2);
cell3.SetCellValue(model.ToolList[i].Purpose);
}
}
}
if (model.FaultList != null)
{
if (model.FaultList.Count > 0)
{
for (int i = 0; i < model.FaultList.Count; i++)
{
var row = sheet3.CreateRow(i);//选择第1行
var cell1 = row.CreateCell(0);
cell1.SetCellValue(model.FaultList[i].DeviceType);
var cell2 = row.CreateCell(1);
cell2.SetCellValue(model.FaultList[i].Line);
var cell3 = row.CreateCell(2);
cell3.SetCellValue(model.FaultList[i].Position);
var cell4 = row.CreateCell(3);
cell4.SetCellValue(model.FaultList[i].DefectType);
var cell5 = row.CreateCell(4);
cell5.SetCellValue(model.FaultList[i].Phase);
var cell6 = row.CreateCell(5);
cell6.SetCellValue(model.FaultList[i].DefectCategory);
}
}
}
if (model.ChoiceQuestionList != null)
{
if (model.ChoiceQuestionList.Count > 0)
{
for (int i = 0; i < model.ChoiceQuestionList.Count; i++)
{
var row = sheet4.CreateRow(i);//选择第1行
var cell1 = row.CreateCell(0);
cell1.SetCellValue(model.ChoiceQuestionList[i].Topic);
var cell2 = row.CreateCell(1);
cell2.SetCellValue(model.ChoiceQuestionList[i].OptionA);
var cell3 = row.CreateCell(2);
cell3.SetCellValue(model.ChoiceQuestionList[i].OptionB);
var cell4 = row.CreateCell(3);
cell4.SetCellValue(model.ChoiceQuestionList[i].OptionC);
var cell5 = row.CreateCell(4);
cell5.SetCellValue(model.ChoiceQuestionList[i].OptionD);
var cell6 = row.CreateCell(5);
cell6.SetCellValue(model.ChoiceQuestionList[i].RightKey);
}
}
}
if (model.OperationTicketList != null)
{
if (model.OperationTicketList.Count > 0)
{
for (int i = 0; i < model.OperationTicketList.Count; i++)
{
var row = sheet5.CreateRow(i);//选择第1行
var cell1 = row.CreateCell(0);
cell1.SetCellValue(model.OperationTicketList[i].Type);
var cell2 = row.CreateCell(1);
cell2.SetCellValue(model.OperationTicketList[i].SerialNumber);
var cell3 = row.CreateCell(2);
cell3.SetCellValue(model.OperationTicketList[i].Content);
}
}
}
}
//保存Workbook方式二: 保存到内存流中
var stream = new MemoryStream();
workbook.Write(stream);
stream.Flush();
stream.Position = 0;
sheet1 = null;
sheet2 = null;
sheet3 = null;
sheet4 = null;
sheet5 = null;
workbook = null;
//byte[] data;
//try
//{
// // 发起POST请求,超时时间15秒,返回响应字节数组
// var api_result = get_page_json(url + "/unity/JsonTurnExcel", parameter);
// data = System.Text.Encoding.Default.GetBytes(api_result);
//}
//catch (Exception)
//{
// return null;
//}
return stream.ToArray();
}
///
/// Get请求
///
/// 请求地址
///
public static string get_page(string post_url, string token)
{
Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null;
Encoding encoding = Encoding.UTF8;
// 准备请求...
try
{
// 设置参数
request = WebRequest.Create(post_url) as HttpWebRequest;
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.AllowAutoRedirect = true;
request.Headers.Add("Authorization", "Bearer " + token);
//默认值TimeOut:100 秒
//发送请求并获取相应回应数据
response = request.GetResponse() as HttpWebResponse;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
instream = response.GetResponseStream();
sr = new StreamReader(instream, encoding);
//返回结果网页(html)代码
string content = sr.ReadToEnd();
string err = string.Empty;
return content;
}
catch (Exception ex)
{
return ex.Message;
}
}
///
/// form-data post请求(请求时带cookie值)
///
/// 请求地址
/// 请求参数
///
public static string get_page(string post_url, string post_data, string token)
{
Stream outstream = null;
Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null;
Encoding encoding = Encoding.UTF8;
byte[] data = encoding.GetBytes(post_data);
// 准备请求...
try
{
// 设置参数
request = WebRequest.Create(post_url) as HttpWebRequest;
request.AllowAutoRedirect = true;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
request.Headers.Add("Authorization", "Bearer " + token);
outstream = request.GetRequestStream();
outstream.Write(data, 0, data.Length);
outstream.Close();
//发送请求并获取相应回应数据
response = request.GetResponse() as HttpWebResponse;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
instream = response.GetResponseStream();
sr = new StreamReader(instream, encoding);
//返回结果网页(html)代码
string content = sr.ReadToEnd();
string err = string.Empty;
return content;
}
catch (Exception ex)
{
string err = ex.Message;
return err;
}
}
public static string get_page_json(string post_url, string post_data, string token)
{
Stream outstream = null;
Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null;
Encoding encoding = Encoding.UTF8;
byte[] data = encoding.GetBytes(post_data);
// 准备请求...
try
{
// 设置参数
request = WebRequest.Create(post_url) as HttpWebRequest;
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.AllowAutoRedirect = true;
request.Method = "POST";
request.ContentType = "application/json";
request.Headers.Add("Authorization", "Bearer " + token);
request.ContentLength = data.Length;
request.Timeout = 6000;
outstream = request.GetRequestStream();
outstream.Write(data, 0, data.Length);
outstream.Close();
//发送请求并获取相应回应数据
response = request.GetResponse() as HttpWebResponse;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
//instream = response.GetResponseStream();
string message = "";
using (var responseStream = response.GetResponseStream())
using (var mstream = new MemoryStream())
{
responseStream.CopyTo(mstream);
message = Encoding.UTF8.GetString(mstream.ToArray());
}
//sr = new StreamReader(instream, encoding);
//返回结果网页(html)代码
string content = message;
string err = string.Empty;
return content;
}
catch (Exception ex)
{
string err = ex.Message;
return err;
}
}
}
}