在本地访问服务端方法并返回值

一、创建Web服务端



default.aspx

using GenesisWinForm.Drawing.NormalMap;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string base64 = Request.Form["base64"];
        if(base64!=null&&base64!="")    
        base64 = base64.Replace(" ", "+");
        string itemName = Request.Form["itemName"];
        string itemPrice = Request.Form["itemPrice"];
        string paraType = Request.Form["paraType"];
        string para = Request.Form["para"];
        string companyTel = Request.Form["companyTel"];
        string companyName = Request.Form["companyName"];
        writeFile("itemName=" + itemName + "itemPrice=" + itemPrice + "paraType=" + paraType + "para=" + para + "companyTel=" + companyTel + "companyName=" + companyName);
        Response.Write(saveFile(base64, itemName, itemPrice, paraType, para, companyTel, companyName));
    }


    public void  writeFile(string temp)
    {
        if (!File.Exists(System.Web.HttpContext.Current.Server.MapPath("/") + "\\log.txt")) File.Create(System.Web.HttpContext.Current.Server.MapPath(" / ") + "\\log.txt").Close();
        
        FileStream fs = new FileStream(System.Web.HttpContext.Current.Server.MapPath("/") + "\\log.txt", FileMode.Append,FileAccess.Write);
        //获得字节数组
        byte[] data = System.Text.Encoding.Default.GetBytes(temp);
        //开始写入
        fs.Write(data, 0, data.Length);
        //清空缓冲区、关闭流
        fs.Flush();
        fs.Close();  
    }


    /// <summary>
    /// 保存图片
    /// </summary>
    /// <param name="base64"></param>
    /// <param name="path"></param>
    /// <param name="name"></param>
    /// <returns></returns>
    public  bool Base64ToImg(string base64, string path, string name)
    {
        writeFile("开始写png图!" + path + "------------------------------------------------------------------------------------------------------------------\n");
        try
        {
            byte[] bytes = Convert.FromBase64String(base64);


            MemoryStream ms = new MemoryStream(bytes);
            System.Drawing.Image img = System.Drawing.Image.FromStream(ms);


            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            img.Save(path + "\\" + name, System.Drawing.Imaging.ImageFormat.Png);
            img.Dispose();


            return true;
        }
        catch (Exception ex)
        {
            writeFile("ex!" + ex + "------------------------------------------------------------------------------------------------------------------\n");
            return false;
        }
    }


    /// <summary>
    /// 上传材料0
    /// </summary>
    /// <param name="base64"></param>
    /// <returns></returns>
    public  string saveFile(string base64, string itemName, string itemPrice, string paraType, string para, string companyTel, string companyName)
    {
        try
        {
            writeFile("判断文件!" + "\n");
            string result = "";
            if (base64 != null)
            {
                writeFile("判断base64!" + "\n");
                string[] temp1 = base64.Split(',');
                string[] temp2 = itemName.Split(',');
                for (int i = 0; i < temp1.Length; i++)
                {
                    //string FilePath = "\\sharing\\itemPic";
                    string FileName = System.Guid.NewGuid() + "";
                    writeFile("生成FileName!----------------------------------------------------------------------------------------" + FileName + "\n");
                    string FilePath = System.Web.HttpContext.Current.Server.MapPath("/") + "\\sharing\\itemPic";
                    writeFile("生成FilePath!----------------------------------------------------------------------------------------" + FilePath + "\n");
                    if (!System.IO.Directory.Exists(FilePath))
                    {
                        System.IO.Directory.CreateDirectory(FilePath);
                    }
                    var serialize = new System.Web.Script.Serialization.JavaScriptSerializer();
                    string[] tempdataArr = new string[] { FilePath, temp2[i], companyName, itemPrice, companyTel, paraType, para };
                    writeFile("txt组装成功!------------------------------------------------------------------------------------------"+tempdataArr + "\n");
                    string tempdata = serialize.Serialize(tempdataArr);


                    FileStream fs = new FileStream(FilePath + "\\" + FileName + "text.txt", FileMode.Create);
                    //获得字节数组              
                    byte[] data = System.Text.Encoding.UTF8.GetBytes(tempdata.ToString());
                    //开始写入              
                    fs.Write(data, 0, data.Length);
                    //清空缓冲区、关闭流             
                    fs.Flush();
                    writeFile("txt写入成功!---------------------------------------------------------------------------------------------" + "\n");
                    Base64ToImg(temp1[i], FilePath, FileName + ".png");
                    Bitmap map = new Bitmap(FilePath + "\\" + FileName + ".png");
                    NormalMapGenerator normalMapGenerator = new NormalMapGenerator();
                    normalMapGenerator.Init();
                    normalMapGenerator.ComputeHeightData(map, 1);
                    normalMapGenerator.ComputeMapNormal();
                    writeFile("开始写auto图!" + "-------------------------------------------------------------------------------------------\n");
                    normalMapGenerator.ImageNormal.Save(FilePath + "\\" + FileName + "aotu.png");
                    writeFile("auto图写入成功!" + "-----------------------------------------------------------------------------------------\n");
                    Bitmap b = normalMapGenerator.GetThumbnail(map, 100, 100);
                    writeFile("开始写small图!" + "------------------------------------------------------------------------------------------\n");
                    b.Save(FilePath + "\\" + FileName + "small.jpg");
                    writeFile("small图写入成功!" + "----------------------------------------------------------------------------------------\n");
                    result += "\\sharing\\itemPic\\" + FileName + "small.jpg" + ",";
                }
                result = result.Remove(result.LastIndexOf(','));
                writeFile("生成result!" + result + "----------------------------------------------------------------------------------------\n");
                return result;
            }else
            {
                return "数据错误!";
            }
        }
        catch (Exception)
        {
            return "false";
        }
         
        
    }
}


创建简单的web空网站 发布到iis上。

二、写本地程序

//post程序

  private static string HttpPostConnectToServer(string serverUrl, string postData)
        {
            var dataArray = Encoding.UTF8.GetBytes(postData);
            //创建请求  
            var request = (HttpWebRequest)HttpWebRequest.Create(serverUrl);
            request.Method = "POST";
            request.ContentLength = dataArray.Length;
            //设置上传服务的数据格式  
            request.ContentType = "application/x-www-form-urlencoded";
            //请求的身份验证信息为默认  
            request.Credentials = CredentialCache.DefaultCredentials;
            //请求超时时间  
            request.Timeout = 10000;
            //创建输入流  
            Stream dataStream;
            //using (var dataStream = request.GetRequestStream())  
            //{  
            //    dataStream.Write(dataArray, 0, dataArray.Length);  
            //    dataStream.Close();  
            //}  
            try
            {
                dataStream = request.GetRequestStream();
            }
            catch (Exception)
            {
                return null;//连接服务器失败  
            }
            //发送请求  
            dataStream.Write(dataArray, 0, dataArray.Length);
            dataStream.Close();
            //读取返回消息  
            string res;
            try
            {
                var response = (HttpWebResponse)request.GetResponse();
                var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                res = reader.ReadToEnd();
                reader.Close();
            }
            catch (Exception ex)
            {
                return "{\"error\":\"connectToServer\",\"error_description\":\"" + ex.Message + "\"}";//连接服务器失败  
            }
            return res;
        }


  public static string SaveFile(string base64,string  itemName, string itemPrice, string userAccount, string paraType, string para)
        {
            Shop_BLL b_shop = new Shop_BLL();
            DataTable dt = new DataTable();
            string companyTel ="";
            string companyName = "";
            if(itemPrice!="0")
            dt = b_shop.getUserCompanyData(userAccount);
            if (dt.Rows.Count > 0)
            {
                 companyTel = dt.Rows[0][4].ToString();
                 companyName = dt.Rows[0][1].ToString();
            }
            //localhost
            string url = "http://119.23.232.36:3000/default.aspx";            
            string data = "base64=" + base64 + "&itemName=" + itemName + "&itemPrice=" + itemPrice + "&paraType=" + paraType + "&para=" + para + "&companyTel=" + companyTel + "&companyName=" + companyName;
            string result = HttpPostConnectToServer(url, data);
            result = result.Remove(result.IndexOf("\r\n"));
            return result;

     }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值