C#でLivedoorAPI AtomPubで画像アップロード
PHPではできているんですが、C#だとどうしてもできません。画像をアップロードし、返ってきたHTMLコードを取得したいです。
コンパイル通ります。
XmlDocument xdoc = new XmlDocument();
var xdeclaration = xdoc.CreateXmlDeclaration("1.0", "utf-8", null);
xdoc.AppendChild(xdeclaration);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create
("http://rootend");
// ローカル,今だけ画像URL
string img = "http://c.jpg";
System.Net.ServicePointManager.Expect100Continue = false;
req.Method = "POST";
req.Headers.Add("X-WSSE", wsseHeader());
req.ContentType = "image/jpeg";
req.GetResponse();
Stream stream = req.GetRequestStream();
//Console.WriteLine(xdoc.ToStringXml());
Console.WriteLine("habe = " + req.HaveResponse);
Console.WriteLine(req);
PHPではこうなります。
require_once 'HTTP/Request2.php';
$pwd = 'API_KEY';
$id = 'LIVE_ID';
$url1= 'https://livedoor.blogcms.jp/atompub/hogehoge';
$imgfiles = array(
"http://a.jpg",
"http://b.jpg");
foreach($imgfiles as $imgfile) {
$imgdata = file_get_contents($imgfile);
$content_type = image_type_to_mime_type(exif_imagetype($imgfile));
try{
$req = new HTTP_Request2();
$req->setUrl($url1);
$req->setConfig(array('ssl_verify_host' => false,
'ssl_verify_peer' => false
));
$req->setHeader("Content-Type", $content_type);
$req->setHeader('Expect', '');
$req->setMethod(HTTP_Request2::METHOD_POST);
$req->setAuth($id, $pwd);
$req->setBody($imgdata);
$response = $req->send();
$xml = simplexml_load_string($response->getBody());
$src = $xml->content['src'];
var_dump($response);
参考にしたサイト
http://nekoriki.net/57
LivedoorAPI公式
http://help.blogpark.jp/archives/52372407.html