带有Content-Type的图像:二进制/八位字节流以错误的格式保存

I am using wp_upload_bits which is a cURL wrapper for WordPress for saving in my server a remote .png image, which was previously downloaded with Content-Type: binary/octet-stream.

This is how my code looks like:

(wrong code, see the one underneath)

    //File contents
    $attachment = 'image/png,' . file_get_contents( $url );

    // Upload bits attachment
    $result = wp_upload_bits( 
        basename( $url ), 
        null,
        $attachment
    );

(right code)

    $attachment = new WP_Http();
    $attachment = $attachment->request( $url, array(
        'headers' => array( 
            'X-app-action' => 'importing'
        ),
    ) );

    // Upload bits attachment
    $result = wp_upload_bits( 
        basename( $url ), 
        null,
        $attachment[ 'body' ]
    );

EDITED: This is actually the code, I got confused, I am using WP_Http() instead of file_get_contents()

Unfortunately, I have to assume that the image is being saved with the wrong format, since it looks kind of corrupted or broken, the image won't show up at all.

What am I doing wrong?