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. IE9中Media queries在iframe无效的解决方法

    在css中有5个media querie @media screen and(min-width:0px)and(max-width:319px){ body {background-color:re ...

  2. c#中的反射

    System.Reflection.AssemblySystem.Activator Assembly assembly = Assembly.load("namespace名") ...

  3. shaerpoint designer 无法创建 visio 2013工作流

    问题描述 当我想创建一个SharePoint 2013 工作流的时候,打开SharePoint 2013 Designer(一下简称SPD),发现没有SharePoint 2013 工作流的选项.原来 ...

  4. JAVA输出图形(网上找的)

    public class TuXing { public static void main(String[] args) { int i, j, k; for (i = 1; i <= 5; i ...

  5. bzoj 2440: [中山市选2011]完全平方数

    #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #defin ...

  6. 大过年的,不下班的,上个Android文件操作类(内部存储和sd卡均可)

    package com.kkdiangame.UI.res; import java.io.ByteArrayOutputStream; import java.io.File; import jav ...

  7. SQL SERVER 创建作业

    ),,                ,            ,     , ,      ),SERVERPROPERTY(N,                ,            ,     ...

  8. Cocoapods的安装与使用

    一.安装 1.CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境.OS X系统默认已经可以运行Ruby了,因此我们只需执行以下命令: sudo gem install cocoa ...

  9. 创建条形码图像易用的控制字符编码功能的条形码控件Native Crystal Reports Barcode Generator

    Native Crystal Reports Barcode Generator是一个对象,它可以很容易地被嵌入到一个Crystal Report中用于创建条形码图像.一旦此条形码被安装在一个报表中, ...

  10. CentOS 6.4 U盘启动问题的解决

    替换syslinux/目录下的vesamenu.c32文件. 下载地址: http://pan.baidu.com/s/1mg8xce8