using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using ServiceStack.Text; namespace WeiXin.Core
{
public class TFSHelper
{
private const int TIME_OUT = ;
public class ReponseInfo
{
public string TFS_FILE_NAME { get; set; }
}
/// <summary>
/// 保存图片
/// </summary>
/// <param name="url">请求的接口</param>
/// <param name="data">字节数组形式的pic信息</param>
/// <returns>图片文件名称</returns> public static string Save(string url, byte[] data)
{
string result = null;
HttpWebRequest request = null;
HttpWebResponse response = null;
Stream writer = null;
Stream reader = null;
StreamReader sr = null; try
{
request = (HttpWebRequest)WebRequest.Create(url);
request.Date = DateTime.Now;
request.Timeout = TIME_OUT;
request.Method = "POST";
using (writer = request.GetRequestStream())
{
writer.Write(data, , data.Length);
}
}
catch (Exception ex)
{
throw new Exception("TFS存文件发送请求失败,原因:" + ex.Message);
}
finally
{
if (writer != null)
{
writer.Close();
}
} try
{
response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
using (reader = response.GetResponseStream())
{
if (reader != null) sr = new StreamReader(reader, Encoding.GetEncoding("UTF-8"));
if (sr != null) result = sr.ReadToEnd();
}
}
}
catch (Exception ex)
{
throw new Exception("TFS存文件接收数据失败,原因:" + ex.Message);
}
finally
{
if (sr != null)
{
sr.Close();
}
if (reader != null)
{
reader.Close();
}
if (response != null)
{
response.Close();
}
}
if (!string.IsNullOrEmpty(result))
{
result = result.FromJson<ReponseInfo>().TFS_FILE_NAME;//从响应的json字符串中获取到值
}
return result;
}
/// <summary>
/// 获取图片
/// </summary>
/// <param name="url">请求的接口</param>
/// <param name="imgName">图片名称</param>
/// <returns>字节数组类型的pic信息</returns> public static byte[] Take(string url, string imgName)
{
HttpWebRequest request = null;
HttpWebResponse response = null;
Stream reader = null;
url = url + "/" + imgName;
try
{
request = (HttpWebRequest)WebRequest.Create(url);
request.Date = DateTime.Now;
request.Timeout = TIME_OUT;
request.Method = "GET";
//using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
//{
// writer.Write(imgName);
//}
}
catch (Exception ex)
{
throw new Exception("TFS取文件发送请求失败,原因:" + ex.Message);
}
try
{
response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
using (reader = response.GetResponseStream())
{
MemoryStream ms = new MemoryStream();
reader.CopyTo(ms);
return ms.ToArray();
}
}
}
catch (Exception ex)
{
throw new Exception("TFS取文件接受数据失败,原因:" + ex.Message);
}
finally
{
if (reader != null)
{
reader.Close();
}
if (response != null)
{
response.Close();
}
}
return null;
}
/// <summary>
/// 删除tfs文件
/// </summary>
/// <param name="url">请求的接口</param>
/// <returns>删除是否成功</returns>
public static bool Delete(string url)
{
bool result = false;
HttpWebRequest request = null;
HttpWebResponse response = null;
try
{
request = WebRequest.Create(url) as HttpWebRequest;
request.Date = DateTime.Now;
request.Timeout = TIME_OUT;
request.Method = "DELETE";
}
catch (Exception ex)
{
throw new Exception("TFS删除文件发送请求失败,原因:" + ex.Message);
}
try
{
response = request.GetResponse() as HttpWebResponse;
if (response.StatusCode == HttpStatusCode.OK)
{
result = true;
}
}
catch (Exception ex)
{ throw new Exception("TFS删除文件接受数据失败,原因:" + ex.Message);
}
finally
{
if (response != null)
{
response.Close();
}
}
return result;
}
}
}

GETorPOST方式保存和获取图片信息的更多相关文章

  1. ios中从相册:相机中获取图片信息

    ios中从相册/相机中获取图片信息 从相册中获取图片的信息 UIImagePickerController *imgPickView = [[UIImagePickerController alloc ...

  2. Redis学习——Redis持久化之RDB备份方式保存数据

    从这一个介绍里面知道,redis比memcache作为缓存数据库强大的地方,一个是支持的数据类型比较多,另一个就是redis持久化功能. 下面就介绍Redis的持久化之RDB! 一:什么是redis的 ...

  3. js获取图片信息(一)-----获取图片的原始尺寸

    如何获取图片的原始尺寸大小? 如下,当给 img 设置一个固定的大小时,要怎样获取图片的原始尺寸呢? #oImg{ width: 100px; height: 100px; } <img src ...

  4. 【转】如何使用KeyChain保存和获取UDID

    本文是iOS7系列文章第一篇文章,主要介绍使用KeyChain保存和获取APP数据,解决iOS7上获取不变UDID的问题.并给出一个获取UDID的工具类,使用方便,只需要替换两个地方即可. 一.iOS ...

  5. #使用parser获取图片信息,输出Python官网发布的会议时间、名称和地点。

    # !/usr/bin/env/Python3 # - * - coding: utf-8 - * - from html.parser import HTMLParser import urllib ...

  6. Redis学习——Redis持久化之AOF备份方式保存数据

    新技术的出现一定是在老技术的基础之上,并且完善了老技术的某一些不足的地方,新技术和老技术就如同JAVA中的继承关系.子类(新技术)比父类(老技术)更加的强大! 在前面介绍了Redis学习--Redis ...

  7. 解决spring-boot配置文件使用加密方式保存敏感数据启动报错No decryption for FailsafeTextEncryptor. Did you configure the keystore correctly

    spring-boot配置文件使用加密方式保存敏感数据 application.yml spring: datasource: username: dbuser password: '{cipher} ...

  8. SENet(Squeeze-and-Excitation Networks)算法笔记---通过学习的方式来自动获取到每个特征通道的重要程度,然后依照这个重要程度去提升有用的特征并抑制对当前任务用处不大的特征

    Momenta详解ImageNet 2017夺冠架构SENet 转自机器之心专栏 作者:胡杰 本届 CVPR 2017大会上出现了很多值得关注的精彩论文,国内自动驾驶创业公司 Momenta 联合机器 ...

  9. 如何使用KeyChain保存和获取UDID

    本文是iOS7系列文章第一篇文章,主要介绍使用KeyChain保存和获取APP数据,解决iOS7上获取不变UDID的问题.并给出一个获取UDID的工具类,使用方便,只需要替换两个地方即可. 一.iOS ...

随机推荐

  1. Vim经典讲解

    http://blog.csdn.net/niushuai666/article/details/7275406

  2. go局部变量的存储空间是堆还是栈?

    编译器会自动选择在栈上还是在堆上分配局部变量的存储空间,但可能令人惊讶的是,这个选择并不是由用var还是new声明变量的方式决定的. var global *int func f() { var x ...

  3. Hadoop作业JVM堆大小设置优化 [转]

    前段时间,公司Hadoop集群整体的负载很高,查了一下原因,发现原来是客户端那边在每一个作业上擅自配置了很大的堆空间,从而导致集群负载很高.下面我就来讲讲怎么来现在客户端那边的JVM堆大小的设置.我们 ...

  4. spring mvc设置字符集过滤器

    <filter> <filter-name>springEncoding</filter-name> <filter-class> org.spring ...

  5. 使用ServerSocket创建TCP服务器端

    在两个通信实体没有建立虚拟链路之前,必须有一个通信实体先做出“主动姿态”,主动接受来自其他通信实体的连接请求. Java中能接受其它通信实体连接请求的类是ServerSocket,ServerSock ...

  6. 一模 (2) day2

    第一题: 题目大意:给出n种物品和每种物品的件数,求拿k件的方案数.N<=30 解题过程: 1.一开始总想着是组合数学的模型,结果怎么都想不出来..然后写了个爆搜,数据很弱,只有1个点超时. 2 ...

  7. Rsync+sersync文件实时同步

    一.为什么要用Rsync+sersync架构1.sersync是基于Inotify开发的,类似于Inotify-tools的工具2.sersync可以记录下被监听目录中发生变化的(包括增加.删除.修改 ...

  8. 前端必须掌握30个CSS3选择器

    也许你已经学会了CSS的三个简单常用的选择器:#ID,.class,标签选择器,可是这些就足够了吗?随着CSS3的到来,作为前端开发者需要掌握下面三十个基本的选择器,这样才可以在平时开发中得心用手. ...

  9. SQL Server 自定义字符串分割函数

    一.按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果(标量值函数)   create function Func_StrArrayL ...

  10. Linux配置防火墙 开启80端口

    vi /etc/sysconfig/iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允许80端口通过防火 ...