当前位置: 首页>>代码示例>>Java>>正文


Java MimeBodyPart.writeTo方法代码示例

本文整理汇总了Java中javax.mail.internet.MimeBodyPart.writeTo方法的典型用法代码示例。如果您正苦于以下问题:Java MimeBodyPart.writeTo方法的具体用法?Java MimeBodyPart.writeTo怎么用?Java MimeBodyPart.writeTo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在javax.mail.internet.MimeBodyPart的用法示例。


在下文中一共展示了MimeBodyPart.writeTo方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testSendMultipartEmail

import javax.mail.internet.MimeBodyPart; //导入方法依赖的package包/类
@Test
public void testSendMultipartEmail() throws Exception {
    mailService.sendEmail("[email protected]", "testSubject", "testContent", true, false);
    verify(javaMailSender).send((MimeMessage) messageCaptor.capture());
    MimeMessage message = (MimeMessage) messageCaptor.getValue();
    MimeMultipart mp = (MimeMultipart) message.getContent();
    MimeBodyPart part = (MimeBodyPart) ((MimeMultipart) mp.getBodyPart(0).getContent()).getBodyPart(0);
    ByteArrayOutputStream aos = new ByteArrayOutputStream();
    part.writeTo(aos);
    assertThat(message.getSubject()).isEqualTo("testSubject");
    assertThat(message.getAllRecipients()[0].toString()).isEqualTo("[email protected]");
    assertThat(message.getFrom()[0].toString()).isEqualTo("[email protected]");
    assertThat(message.getContent()).isInstanceOf(Multipart.class);
    assertThat(aos.toString()).isEqualTo("\r\ntestContent");
    assertThat(part.getDataHandler().getContentType()).isEqualTo("text/plain; charset=UTF-8");
}
 
开发者ID:torgcrm,项目名称:TorgCRM-Server,代码行数:17,代码来源:MailServiceIntTest.java

示例2: testSendMultipartHtmlEmail

import javax.mail.internet.MimeBodyPart; //导入方法依赖的package包/类
@Test
public void testSendMultipartHtmlEmail() throws Exception {
    mailService.sendEmail("[email protected]", "testSubject", "testContent", true, true);
    verify(javaMailSender).send((MimeMessage) messageCaptor.capture());
    MimeMessage message = (MimeMessage) messageCaptor.getValue();
    MimeMultipart mp = (MimeMultipart) message.getContent();
    MimeBodyPart part = (MimeBodyPart) ((MimeMultipart) mp.getBodyPart(0).getContent()).getBodyPart(0);
    ByteArrayOutputStream aos = new ByteArrayOutputStream();
    part.writeTo(aos);
    assertThat(message.getSubject()).isEqualTo("testSubject");
    assertThat(message.getAllRecipients()[0].toString()).isEqualTo("[email protected]");
    assertThat(message.getFrom()[0].toString()).isEqualTo("[email protected]");
    assertThat(message.getContent()).isInstanceOf(Multipart.class);
    assertThat(aos.toString()).isEqualTo("\r\ntestContent");
    assertThat(part.getDataHandler().getContentType()).isEqualTo("text/html;charset=UTF-8");
}
 
开发者ID:torgcrm,项目名称:TorgCRM-Server,代码行数:17,代码来源:MailServiceIntTest.java

示例3: testSendMultipartEmail

import javax.mail.internet.MimeBodyPart; //导入方法依赖的package包/类
@Test
public void testSendMultipartEmail() throws Exception {
    mailService.sendEmail("[email protected]", "testSubject","testContent", true, false);
    verify(javaMailSender).send((MimeMessage) messageCaptor.capture());
    MimeMessage message = (MimeMessage) messageCaptor.getValue();
    MimeMultipart mp = (MimeMultipart) message.getContent();
    MimeBodyPart part = (MimeBodyPart)((MimeMultipart) mp.getBodyPart(0).getContent()).getBodyPart(0);
    ByteArrayOutputStream aos = new ByteArrayOutputStream();
    part.writeTo(aos);
    assertThat(message.getSubject()).isEqualTo("testSubject");
    assertThat(message.getAllRecipients()[0].toString()).isEqualTo("[email protected]");
    assertThat(message.getFrom()[0].toString()).isEqualTo("[email protected]");
    assertThat(message.getContent()).isInstanceOf(Multipart.class);
    assertThat(aos.toString()).isEqualTo("\r\ntestContent");
    assertThat(part.getDataHandler().getContentType()).isEqualTo("text/plain; charset=UTF-8");
}
 
开发者ID:oktadeveloper,项目名称:jhipster-microservices-example,代码行数:17,代码来源:MailServiceIntTest.java

示例4: testSendMultipartHtmlEmail

import javax.mail.internet.MimeBodyPart; //导入方法依赖的package包/类
@Test
public void testSendMultipartHtmlEmail() throws Exception {
    mailService.sendEmail("[email protected]", "testSubject","testContent", true, true);
    verify(javaMailSender).send((MimeMessage) messageCaptor.capture());
    MimeMessage message = (MimeMessage) messageCaptor.getValue();
    MimeMultipart mp = (MimeMultipart) message.getContent();
    MimeBodyPart part = (MimeBodyPart)((MimeMultipart) mp.getBodyPart(0).getContent()).getBodyPart(0);
    ByteArrayOutputStream aos = new ByteArrayOutputStream();
    part.writeTo(aos);
    assertThat(message.getSubject()).isEqualTo("testSubject");
    assertThat(message.getAllRecipients()[0].toString()).isEqualTo("[email protected]");
    assertThat(message.getFrom()[0].toString()).isEqualTo("[email protected]");
    assertThat(message.getContent()).isInstanceOf(Multipart.class);
    assertThat(aos.toString()).isEqualTo("\r\ntestContent");
    assertThat(part.getDataHandler().getContentType()).isEqualTo("text/html;charset=UTF-8");
}
 
开发者ID:oktadeveloper,项目名称:jhipster-microservices-example,代码行数:17,代码来源:MailServiceIntTest.java

示例5: testSendMultipartEmail

import javax.mail.internet.MimeBodyPart; //导入方法依赖的package包/类
@Test
public void testSendMultipartEmail() throws Exception {
	mailService.sendEmail("[email protected]", "testSubject", "testContent", true, false);
	verify(javaMailSender).send((MimeMessage) messageCaptor.capture());
	MimeMessage message = (MimeMessage) messageCaptor.getValue();
	MimeMultipart mp = (MimeMultipart) message.getContent();
	MimeBodyPart part = (MimeBodyPart) ((MimeMultipart) mp.getBodyPart(0).getContent()).getBodyPart(0);
	ByteArrayOutputStream aos = new ByteArrayOutputStream();
	part.writeTo(aos);
	assertThat(message.getSubject()).isEqualTo("testSubject");
	assertThat(message.getAllRecipients()[0].toString()).isEqualTo("[email protected]");
	assertThat(message.getFrom()[0].toString()).isEqualTo("[email protected]");
	assertThat(message.getContent()).isInstanceOf(Multipart.class);
	assertThat(aos.toString()).isEqualTo("\r\ntestContent");
	assertThat(part.getDataHandler().getContentType()).isEqualTo("text/plain; charset=UTF-8");
}
 
开发者ID:alikemalocalan,项目名称:MicroBlog,代码行数:17,代码来源:MailServiceIntTest.java

示例6: testSendMultipartHtmlEmail

import javax.mail.internet.MimeBodyPart; //导入方法依赖的package包/类
@Test
public void testSendMultipartHtmlEmail() throws Exception {
	mailService.sendEmail("[email protected]", "testSubject", "testContent", true, true);
	verify(javaMailSender).send((MimeMessage) messageCaptor.capture());
	MimeMessage message = (MimeMessage) messageCaptor.getValue();
	MimeMultipart mp = (MimeMultipart) message.getContent();
	MimeBodyPart part = (MimeBodyPart) ((MimeMultipart) mp.getBodyPart(0).getContent()).getBodyPart(0);
	ByteArrayOutputStream aos = new ByteArrayOutputStream();
	part.writeTo(aos);
	assertThat(message.getSubject()).isEqualTo("testSubject");
	assertThat(message.getAllRecipients()[0].toString()).isEqualTo("[email protected]");
	assertThat(message.getFrom()[0].toString()).isEqualTo("[email protected]");
	assertThat(message.getContent()).isInstanceOf(Multipart.class);
	assertThat(aos.toString()).isEqualTo("\r\ntestContent");
	assertThat(part.getDataHandler().getContentType()).isEqualTo("text/html;charset=UTF-8");
}
 
开发者ID:alikemalocalan,项目名称:MicroBlog,代码行数:17,代码来源:MailServiceIntTest.java

示例7: testSendMultipartEmail

import javax.mail.internet.MimeBodyPart; //导入方法依赖的package包/类
@Test
public void testSendMultipartEmail() throws Exception {
    mailService.sendEmail("john.do[email protected]", "testSubject","testContent", true, false);
    verify(javaMailSender).send((MimeMessage) messageCaptor.capture());
    MimeMessage message = (MimeMessage) messageCaptor.getValue();
    MimeMultipart mp = (MimeMultipart) message.getContent();
    MimeBodyPart part = (MimeBodyPart)((MimeMultipart) mp.getBodyPart(0).getContent()).getBodyPart(0);
    ByteArrayOutputStream aos = new ByteArrayOutputStream();
    part.writeTo(aos);
    assertThat(message.getSubject()).isEqualTo("testSubject");
    assertThat(message.getAllRecipients()[0].toString()).isEqualTo("[email protected]");
    assertThat(message.getFrom()[0].toString()).isEqualTo("[email protected]");
    assertThat(message.getContent()).isInstanceOf(Multipart.class);
    assertThat(aos.toString()).isEqualTo("\r\ntestContent");
    assertThat(part.getDataHandler().getContentType()).isEqualTo("text/plain; charset=UTF-8");
}
 
开发者ID:michaelhoffmantech,项目名称:patient-portal,代码行数:17,代码来源:MailServiceIntTest.java

示例8: calculateMIC

import javax.mail.internet.MimeBodyPart; //导入方法依赖的package包/类
private String calculateMIC(MimeBodyPart bodyPart) throws Exception{
	// By default, MIC calculate with Headers
	ByteArrayOutputStream contentBAOS = new ByteArrayOutputStream();
	bodyPart.writeTo(contentBAOS);
    byte[] content = (contentBAOS.toByteArray());
       
	MessageDigest md = MessageDigest.getInstance( SMIMESignedGenerator.DIGEST_SHA1, "BC");
	md.update(content);
	
	 byte[] digest = md.digest();
        String digestString = new String(Base64.encode(digest));
        return digestString + ", " + DispositionNotificationOption.SIGNED_RECEIPT_MICALG_SHA1;
}
 
开发者ID:cecid,项目名称:hermes,代码行数:14,代码来源:IncomingMessageProcessorTest.java

示例9: testCompressAS2Message

import javax.mail.internet.MimeBodyPart; //导入方法依赖的package包/类
@Test
public void testCompressAS2Message() throws Exception{
	InputStream ins = FIXTURE_LOADER.getResourceAsStream(MOCK_AS2_MSG);
	ByteArrayInputStream bIns = new ByteArrayInputStream(IOHandler.readBytes(ins));
	partnershipDVO.setIsOutboundCompressRequired(true);
	String mid = RANDOM.toString();
	
	AS2Message as2Msg = TARGET.storeOutgoingMessage(
			mid, //MessageID
			"xml", 
			partnershipDVO,
			new InputStreamDataSource(bIns, "xml", MOCK_AS2_MSG));
	
	SMIMECompressed compressed = new SMIMECompressed(as2Msg.getBodyPart());
	MimeBodyPart decompressedPart = SMIMEUtil.toMimeBodyPart(compressed.getContent(new ZlibExpanderProvider()));

	ByteArrayOutputStream baos = new ByteArrayOutputStream();
	IOHandler.pipe( decompressedPart.getDataHandler().getInputStream(), baos);
	byte[] decrptedBA = baos.toByteArray();
	byte[] original = IOHandler.readBytes(FIXTURE_LOADER.getResourceAsStream(MOCK_AS2_MSG));
	
	Assert.assertTrue(Arrays.equals(decrptedBA, original));		
	//TODO
   String filenameHdr = decompressedPart.getHeader("Content-Disposition")[0];
   Assert.assertEquals("Filename value lost in BodyPart Header", 
		   MOCK_AS2_MSG, getFileName(filenameHdr));
   
   
   // Verify MIC Value
      ByteArrayOutputStream contentBAOS = new ByteArrayOutputStream();
      decompressedPart.writeTo(contentBAOS);
      byte[] content = (contentBAOS.toByteArray());
      String mic = calculateMIC(content);
      Assert.assertEquals( "MIC Value is not valid.",
   		   mic, getStoredMessage(mid).getMicValue());
     
}
 
开发者ID:cecid,项目名称:hermes,代码行数:38,代码来源:OutgoingMessageProcessorTest.java

示例10: testSignedAS2Message

import javax.mail.internet.MimeBodyPart; //导入方法依赖的package包/类
@Test
public void testSignedAS2Message() throws Exception{
	InputStream ins = FIXTURE_LOADER.getResourceAsStream(MOCK_AS2_MSG);
	ByteArrayInputStream bIns = new ByteArrayInputStream(IOHandler.readBytes(ins));

	partnershipDVO.setIsOutboundSignRequired(true);
	String mid = RANDOM.toString();
	
	AS2Message as2Msg = TARGET.storeOutgoingMessage(
			mid, //MessageID
			"xml", 
			partnershipDVO,
			new InputStreamDataSource(bIns, "xml", MOCK_AS2_MSG));
	
	//Verify As2Signing Message
	try{
		SMIMESigned signed = new SMIMESigned((MimeMultipart)as2Msg.getBodyPart().getContent());
		SignerInformationStore  signers = signed.getSignerInfos();
		Iterator signerInfos = signers.getSigners().iterator();
		while (signerInfos.hasNext()) {
			SignerInformation   signerInfo = (SignerInformation)signerInfos.next();

			SignerInformationVerifier verifier =
			    new BcRSASignerInfoVerifierBuilder(new DefaultCMSSignatureAlgorithmNameGenerator(),
							       new DefaultSignatureAlgorithmIdentifierFinder(),
							       new DefaultDigestAlgorithmIdentifierFinder(), 
							       new BcDigestCalculatorProvider())
			    .build(new JcaX509CertificateHolder(partnershipDVO.getEffectiveVerifyCertificate()));
			
			if (!signerInfo.verify(verifier)) {
				Assert.fail("Signature Verfifcation Failed");
			}
		}
		
		//Assert the filename value
		MimeBodyPart signedPart = signed.getContent();
        String filenameHdr = signedPart.getHeader("Content-Disposition")[0];
        Assert.assertEquals("Lost Filename Header Information", MOCK_AS2_MSG, getFileName(filenameHdr));
        
        
        // Verify MIC Value
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        signedPart.writeTo(baos);
           byte[] content = (baos.toByteArray());
           String mic = calculateMIC(content);
           
           MessageDVO msgDVO = getStoredMessage(mid);
           Assert.assertEquals("MIC Value is not valid.", mic, msgDVO.getMicValue());
        
	}catch(Exception exp){
		Assert.fail("Signature Verfifcation Failed");
	}
       Assert.assertTrue(true);
	}
 
开发者ID:cecid,项目名称:hermes,代码行数:55,代码来源:OutgoingMessageProcessorTest.java

示例11: testEncrytedAS2Message

import javax.mail.internet.MimeBodyPart; //导入方法依赖的package包/类
@Test
public void testEncrytedAS2Message() throws Exception{
    InputStream ins = FIXTURE_LOADER.getResourceAsStream(MOCK_AS2_MSG);
    ByteArrayInputStream bIns = new ByteArrayInputStream(IOHandler.readBytes(ins));
    String mid = RANDOM.toString();
    
    partnershipDVO.setIsOutboundEncryptRequired(true);
    AS2Message as2Msg = TARGET.storeOutgoingMessage(
						    mid, //MessageID
						    "xml", 
						    partnershipDVO,
						    new InputStreamDataSource(bIns, "xml", MOCK_AS2_MSG));
	
	
    // Decrypt Message
    SMIMEEnveloped crypted = new SMIMEEnveloped(as2Msg.getBodyPart());
    
    // RecipientId recId = new RecipientId();
    RecipientId recId = new JceKeyTransRecipientId(partnershipDVO.getEncryptX509Certificate());

    RecipientInformationStore  recipientsInfo = crypted.getRecipientInfos();	
    RecipientInformation       recipientInfo = recipientsInfo.get(recId);

    KeyStoreManager keyMan = (KeyStoreManager)TARGET.getSystemModule().getComponent("keystore-manager");

    JceKeyTransEnvelopedRecipient recipient = new JceKeyTransEnvelopedRecipient(keyMan.getPrivateKey());	
    recipient.setProvider(SECURITY_PROVIDER);							
    
    MimeBodyPart  decrpted = SMIMEUtil.toMimeBodyPart(recipientInfo.getContent(recipient));
       
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    IOHandler.pipe( decrpted.getDataHandler().getInputStream(), baos);
    byte[] decrptedBA = baos.toByteArray();
    byte[] originalBA = IOHandler.readBytes(FIXTURE_LOADER.getResourceAsStream(MOCK_AS2_MSG));
       
    Assert.assertTrue(Arrays.equals(decrptedBA, originalBA));
       
    //Assert the filename
    String filenameHdr = decrpted.getHeader("Content-Disposition")[0];
    Assert.assertEquals("Filename value lost in BodyPartHeader",
			MOCK_AS2_MSG, getFileName(filenameHdr));

    //Verify MIC
    ByteArrayOutputStream contentStream = new ByteArrayOutputStream();
    decrpted.writeTo(contentStream);
    byte[] content = (contentStream.toByteArray());
    String mic = calculateMIC(content);
    Assert.assertEquals( "MIC Value is not valid.", mic, getStoredMessage(mid).getMicValue());
}
 
开发者ID:cecid,项目名称:hermes,代码行数:50,代码来源:OutgoingMessageProcessorTest.java

示例12: testSignedEncryptedAS2Message

import javax.mail.internet.MimeBodyPart; //导入方法依赖的package包/类
@Test
public void testSignedEncryptedAS2Message() throws Exception {
    InputStream ins = FIXTURE_LOADER.getResourceAsStream(MOCK_AS2_MSG);
    ByteArrayInputStream bIns = new ByteArrayInputStream(IOHandler.readBytes(ins));
	
    // Prepare Data
    String mid = RANDOM.toString();
    partnershipDVO.setIsOutboundEncryptRequired(true);
    partnershipDVO.setIsOutboundSignRequired(true);
    //Encrypt message
    AS2Message as2Msg = TARGET.storeOutgoingMessage(
						    mid, //MessageID
						    "xml", 
						    partnershipDVO,
						    new InputStreamDataSource(bIns, "xml", MOCK_AS2_MSG));
	
    // Decrypt Message
    SMIMEEnveloped crypted = new SMIMEEnveloped(as2Msg.getBodyPart());

    RecipientId recId = new JceKeyTransRecipientId(partnershipDVO.getEncryptX509Certificate());
    
    RecipientInformationStore  recipientsInfo = crypted.getRecipientInfos();	
    RecipientInformation       recipientInfo = recipientsInfo.get(recId);

    KeyStoreManager keyMan = (KeyStoreManager)TARGET.getSystemModule().getComponent("keystore-manager");

    JceKeyTransEnvelopedRecipient recipient = new JceKeyTransEnvelopedRecipient(keyMan.getPrivateKey());	
    recipient.setProvider(SECURITY_PROVIDER);							
    
    MimeBodyPart  decrpted = SMIMEUtil.toMimeBodyPart(recipientInfo.getContent(recipient));
	
    //Verify Signature
    try{
	SMIMESigned signed = new SMIMESigned((MimeMultipart)decrpted.getContent());
	SignerInformationStore  signers = signed.getSignerInfos();
	Iterator signerInfos = signers.getSigners().iterator();

	while (signerInfos.hasNext()) {
	    SignerInformation   signerInfo = (SignerInformation)signerInfos.next();

	    SignerInformationVerifier verifier =
		new BcRSASignerInfoVerifierBuilder(new DefaultCMSSignatureAlgorithmNameGenerator(),
						   new DefaultSignatureAlgorithmIdentifierFinder(),
						   new DefaultDigestAlgorithmIdentifierFinder(), 
						   new BcDigestCalculatorProvider())
		.build(new JcaX509CertificateHolder(partnershipDVO.getEffectiveVerifyCertificate()));
	    if (!signerInfo.verify(verifier)) {
		Assert.fail("Signature Verfifcation Failed");
	    }
	}

	
		
	//Assert the filename value
	MimeBodyPart signedPart = signed.getContent();
        String filenameHdr = signedPart.getHeader("Content-Disposition")[0];
        Assert.assertEquals("Lost Filename Header Information", MOCK_AS2_MSG, getFileName(filenameHdr));
        
        
        // Verify MIC Value
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        signedPart.writeTo(baos);
	byte[] content = (baos.toByteArray());
	String mic = calculateMIC(content);
           
	MessageDVO msgDVO = getStoredMessage(mid);
	Assert.assertEquals("MIC Value is not valid.", mic, msgDVO.getMicValue());
        
    }catch(Exception exp){
	Assert.fail("Signature Verfifcation Failed");
    }
    Assert.assertTrue(true);
}
 
开发者ID:cecid,项目名称:hermes,代码行数:74,代码来源:OutgoingMessageProcessorTest.java

示例13: testSignedCommpressMessage

import javax.mail.internet.MimeBodyPart; //导入方法依赖的package包/类
@Test
public void testSignedCommpressMessage() throws Exception{
	InputStream ins = FIXTURE_LOADER.getResourceAsStream(MOCK_AS2_MSG);
	ByteArrayInputStream bIns = new ByteArrayInputStream(IOHandler.readBytes(ins));
	
	// Prepare Data
	String mid = RANDOM.toString();
	partnershipDVO.setIsOutboundSignRequired(true);
	partnershipDVO.setIsOutboundCompressRequired(true);
	//Process message
	AS2Message as2Msg = TARGET.storeOutgoingMessage(
			mid, //MessageID
			"xml", 
			partnershipDVO,
			new InputStreamDataSource(bIns, "xml", MOCK_AS2_MSG));
       
       try{
       	//Verify Message Signature
		SMIMESigned signed = new SMIMESigned((MimeMultipart)as2Msg.getBodyPart().getContent());
		SignerInformationStore  signers = signed.getSignerInfos();
		Iterator signerInfos = signers.getSigners().iterator();
		while (signerInfos.hasNext()) {
			SignerInformation   signerInfo = (SignerInformation)signerInfos.next();

			SignerInformationVerifier verifier =
			    new BcRSASignerInfoVerifierBuilder(new DefaultCMSSignatureAlgorithmNameGenerator(),
							       new DefaultSignatureAlgorithmIdentifierFinder(),
							       new DefaultDigestAlgorithmIdentifierFinder(), 
							       new BcDigestCalculatorProvider())
			    .build(new JcaX509CertificateHolder(partnershipDVO.getEffectiveVerifyCertificate()));
			
			if (!signerInfo.verify(verifier)) {
				Assert.fail("Signature Verfifcation Failed");
			}
		}
		
		// Verify MIC Value
		MimeBodyPart signedPart = signed.getContent();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        signedPart.writeTo(baos);
        byte[] content = (baos.toByteArray());
        String mic = calculateMIC(content);
        MessageDVO msgDVO = getStoredMessage(mid);
        Assert.assertEquals("MIC Value is not valid.", mic, msgDVO.getMicValue());
		
		//Decompress Message
		SMIMECompressed compressed = new SMIMECompressed(signedPart);
		MimeBodyPart decompressedPart = SMIMEUtil.toMimeBodyPart(compressed.getContent(new ZlibExpanderProvider()));
		
		//Assert the filename value
        String filenameHdr = decompressedPart.getHeader("Content-Disposition")[0];
        Assert.assertEquals("Lost Filename Header Information", MOCK_AS2_MSG, getFileName(filenameHdr));
        
	}catch(Exception exp){
		Assert.fail("Signature Verfifcation Failed");
	}
	
}
 
开发者ID:cecid,项目名称:hermes,代码行数:59,代码来源:OutgoingMessageProcessorTest.java


注:本文中的javax.mail.internet.MimeBodyPart.writeTo方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。