9392


PHPではできているんですが、C#だとどうしてもできません。画像をアップロードし、返ってきたHTMLコードを取得したいです。  
コンパイル通ります。

[code]

            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);
    
[/code]

PHPではこうなります。

[code]

    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);
    
[/code]

参考にしたサイト  
<http://nekoriki.net/57>

LivedoorAPI公式  
<http://help.blogpark.jp/archives/52372407.html>


CC BY-SA 3.0
2015-04-21T11:40:57.090
9387
2015-04-22T04:02:57.657
7973
question
c#
C#でLivedoorAPI AtomPubで画像アップロード


`GetRequestStream()` で書き込み用ストリームを取得して `CopyTo` で書きこんで下さい。

[code]

    using(Stream dataStream = request.GetRequestStream ())
    {
        using(FileStream fs = new FileStream(img, FileMode.Open, FileAccess.Read))
        {
            fs.CopyTo(dataStream);
        }
    }
    
[/code]

コードは試してないのでお気を付けて。もっと簡単にやるのならば、`WebClient` を使った方がいいと思います。`UploadData`
という関数1コールで実現出来ます。


CC BY-SA 3.0
2015-04-21T12:46:19.000
9392
2015-04-22T04:02:57.657
2015-04-22T04:02:57.657
440
440
9387
answer